mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 13:47:32 +08:00
test: fix inplace in 'mulComplex' from test_dxt
This commit is contained in:
parent
21f3531b17
commit
ab429d2e73
@ -419,9 +419,6 @@ static void fixCCS( Mat& mat, int cols, int flags )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined _MSC_VER && _MSC_VER >= 1700
|
|
||||||
#pragma optimize("", off)
|
|
||||||
#endif
|
|
||||||
static void mulComplex( const Mat& src1, const Mat& src2, Mat& dst, int flags )
|
static void mulComplex( const Mat& src1, const Mat& src2, Mat& dst, int flags )
|
||||||
{
|
{
|
||||||
dst.create(src1.rows, src1.cols, src1.type());
|
dst.create(src1.rows, src1.cols, src1.type());
|
||||||
@ -430,12 +427,27 @@ static void mulComplex( const Mat& src1, const Mat& src2, Mat& dst, int flags )
|
|||||||
CV_Assert( src1.size == src2.size && src1.type() == src2.type() &&
|
CV_Assert( src1.size == src2.size && src1.type() == src2.type() &&
|
||||||
(src1.type() == CV_32FC2 || src1.type() == CV_64FC2) );
|
(src1.type() == CV_32FC2 || src1.type() == CV_64FC2) );
|
||||||
|
|
||||||
|
const Mat* src1_ = &src1;
|
||||||
|
Mat src1_tmp;
|
||||||
|
if (dst.data == src1.data)
|
||||||
|
{
|
||||||
|
src1_tmp = src1.clone();
|
||||||
|
src1_ = &src1_tmp;
|
||||||
|
}
|
||||||
|
const Mat* src2_ = &src2;
|
||||||
|
Mat src2_tmp;
|
||||||
|
if (dst.data == src2.data)
|
||||||
|
{
|
||||||
|
src2_tmp = src2.clone();
|
||||||
|
src2_ = &src2_tmp;
|
||||||
|
}
|
||||||
|
|
||||||
for( i = 0; i < dst.rows; i++ )
|
for( i = 0; i < dst.rows; i++ )
|
||||||
{
|
{
|
||||||
if( depth == CV_32F )
|
if( depth == CV_32F )
|
||||||
{
|
{
|
||||||
const float* a = src1.ptr<float>(i);
|
const float* a = src1_->ptr<float>(i);
|
||||||
const float* b = src2.ptr<float>(i);
|
const float* b = src2_->ptr<float>(i);
|
||||||
float* c = dst.ptr<float>(i);
|
float* c = dst.ptr<float>(i);
|
||||||
|
|
||||||
if( !(flags & CV_DXT_MUL_CONJ) )
|
if( !(flags & CV_DXT_MUL_CONJ) )
|
||||||
@ -459,8 +471,8 @@ static void mulComplex( const Mat& src1, const Mat& src2, Mat& dst, int flags )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const double* a = src1.ptr<double>(i);
|
const double* a = src1_->ptr<double>(i);
|
||||||
const double* b = src2.ptr<double>(i);
|
const double* b = src2_->ptr<double>(i);
|
||||||
double* c = dst.ptr<double>(i);
|
double* c = dst.ptr<double>(i);
|
||||||
|
|
||||||
if( !(flags & CV_DXT_MUL_CONJ) )
|
if( !(flags & CV_DXT_MUL_CONJ) )
|
||||||
@ -484,9 +496,6 @@ static void mulComplex( const Mat& src1, const Mat& src2, Mat& dst, int flags )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined _MSC_VER && _MSC_VER >= 1700
|
|
||||||
#pragma optimize("", on)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user