src_step = _src->step/CV_ELEM_SIZE(_src->type);
if( !CV_IS_MAT_CONT(_dst->type) )
dst_step = _dst->step/CV_ELEM_SIZE(_dst->type);
-
+
if( CV_MAT_TYPE(_src->type) == CV_32FC2 )
{
CvTsComplex32f* dst = (CvTsComplex32f*)_dst->data.fl;
CvTsComplex64f sum = {0,0};
int delta = i;
k = 0;
-
+
for( j = 0; j < n; j++, src += src_step )
{
sum.re += src->re*w[k].re - src->im*w[k].im;
CvTsComplex64f sum = {0,0};
int delta = i;
k = 0;
-
+
for( j = 0; j < n; j++, src += src_step )
{
sum.re += src->re*w[k].re - src->im*w[k].im;
int i;
CvMat* tmp = cvCreateMat( dst->cols, dst->rows, dst->type );
CvMat* wave = cvTsInitDFTWave( dst->cols, flags & CV_DXT_INVERSE );
-
+
// 1. row-wise transform
for( i = 0; i < dst->rows; i++ )
{
src_step = _src->step/CV_ELEM_SIZE(_src->type);
if( !CV_IS_MAT_CONT(_dst->type) )
dst_step = _dst->step/CV_ELEM_SIZE(_dst->type);
-
+
if( CV_MAT_TYPE(_src->type) == CV_32FC1 )
{
- float *dst = _dst->data.fl;
-
+ float *dst = _dst->data.fl;
+
for( i = 0; i < n; i++, dst += dst_step )
{
const float* src = _src->data.fl;
double sum = 0;
-
+
for( j = 0; j < n; j++, src += src_step )
sum += src[0]*w[j];
w += n;
else if( CV_MAT_TYPE(_src->type) == CV_64FC1 )
{
double *dst = _dst->data.db;
-
+
for( i = 0; i < n; i++, dst += dst_step )
{
const double* src = _src->data.db;
double sum = 0;
-
+
for( j = 0; j < n; j++, src += src_step )
sum += src[0]*w[j];
w += n;
int i;
CvMat* tmp = cvCreateMat( dst->cols, dst->rows, dst->type );
CvMat* wave = cvTsInitDCTWave( dst->cols, flags & CV_DXT_INVERSE );
-
+
// 1. row-wise transform
for( i = 0; i < dst->rows; i++ )
{
CvMat src0_row, src1_row, dst_row;
for( i = 0; i < count; i++ )
{
- int j = !is_2d || i == 0 ? i : count - i;
+ int j = !is_2d || i == 0 ? i : count - i;
cvGetRow( _src0, &src0_row, i );
cvGetRow( _src1, &src1_row, j );
cvGetRow( _dst, &dst_row, i );
delta1 = delta0 + (cn == 1 ? src_step : 1);
if( cn == 1 )
src_step *= 2;
-
+
for( i = 1; i < n2; i++, delta0 += src_step, delta1 += src_step )
{
float t0 = src0[delta0];
delta1 = delta0 + (cn == 1 ? src_step : 1);
if( cn == 1 )
src_step *= 2;
-
+
for( i = 1; i < n2; i++, delta0 += src_step, delta1 += src_step )
{
double t0 = src0[delta0];
int rows2 = flags & CV_DXT_ROWS ? rows : rows/2 + 1, cols2 = cols/2 + 1;
assert( cols2 == mat->cols );
-
+
if( CV_MAT_TYPE(mat->type) == CV_32FC2 )
{
for( i = 0; i < rows2; i++ )
{
CvTsComplex32f* row = (CvTsComplex32f*)(mat->data.ptr + mat->step*i);
- if( (flags & CV_DXT_ROWS) || i == 0 || i == rows2 - 1 && rows % 2 == 0 )
+ if( (flags & CV_DXT_ROWS) || i == 0 || (i == rows2 - 1 && rows % 2 == 0) )
{
row[0].im = 0;
if( cols % 2 == 0 )
for( i = 0; i < rows2; i++ )
{
CvTsComplex64f* row = (CvTsComplex64f*)(mat->data.ptr + mat->step*i);
- if( (flags & CV_DXT_ROWS) || i == 0 || i == rows2 - 1 && rows % 2 == 0 )
+ if( (flags & CV_DXT_ROWS) || i == 0 || (i == rows2 - 1 && rows % 2 == 0) )
{
row[0].im = 0;
if( cols % 2 == 0 )
sizes[INPUT][0] = sizes[INPUT][1] = size;
types[INPUT][1] = types[INPUT][0];
}
- else if( cn == 2 && (bits&32) || cn == 1 && allow_complex )
+ else if( /*(cn == 2 && (bits&32)) ||*/ (cn == 1 && allow_complex) )
{
types[TEMP][0] = depth + 8; // CV_??FC2
sizes[TEMP][0] = size;
size = cvSize(size.width/2+1, size.height);
-
+
if( flags & CV_DXT_INVERSE )
{
if( cn == 2 )
inplace = false;
if( spectrum_mode ||
- !temp_dst && types[INPUT][0] == types[OUTPUT][0] ||
- temp_dst && types[INPUT][0] == types[TEMP][1] )
+ (!temp_dst && types[INPUT][0] == types[OUTPUT][0]) ||
+ (temp_dst && types[INPUT][0] == types[TEMP][1]) )
inplace = (bits & 64) != 0;
types[REF_OUTPUT][0] = types[OUTPUT][0];
if( src_cn != 2 || dst_cn != 2 )
{
tmp_src = &test_mat[TEMP][0];
-
+
if( !(flags & CV_DXT_INVERSE ) )
{
CvMat* cvdft_dst = &test_mat[TEMP][1];