Commit a8079366 authored by Alexey Spizhevoy's avatar Alexey Spizhevoy

fixed gpu image resize test

parent 12f73aa9
...@@ -64,7 +64,8 @@ protected: ...@@ -64,7 +64,8 @@ protected:
virtual int test(const Mat& img) = 0; virtual int test(const Mat& img) = 0;
int CheckNorm(const Mat& m1, const Mat& m2); int CheckNorm(const Mat& m1, const Mat& m2);
int ChechSimilarity(const Mat& m1, const Mat& m2);
}; };
...@@ -117,6 +118,19 @@ int CV_GpuImageProcTest::CheckNorm(const Mat& m1, const Mat& m2) ...@@ -117,6 +118,19 @@ int CV_GpuImageProcTest::CheckNorm(const Mat& m1, const Mat& m2)
} }
} }
int CV_GpuImageProcTest::ChechSimilarity(const Mat& m1, const Mat& m2)
{
Mat diff;
cv::matchTemplate(m1, m2, diff, CV_TM_CCORR_NORMED);
float err = abs(diff.at<float>(0, 0) - 1.f);
if (err > 1e-3f)
return CvTS::FAIL_INVALID_OUTPUT;
return CvTS::OK;
}
void CV_GpuImageProcTest::run( int ) void CV_GpuImageProcTest::run( int )
{ {
//load image //load image
...@@ -241,14 +255,21 @@ struct CV_GpuNppImageResizeTest : public CV_GpuImageProcTest ...@@ -241,14 +255,21 @@ struct CV_GpuNppImageResizeTest : public CV_GpuImageProcTest
{ {
ts->printf(CvTS::LOG, "Interpolation: %s\n", interpolations_str[i]); ts->printf(CvTS::LOG, "Interpolation: %s\n", interpolations_str[i]);
Mat cpu_res; Mat cpu_res1, cpu_res2;
cv::resize(img, cpu_res, Size(), 0.5, 0.5, interpolations[i]); cv::resize(img, cpu_res1, Size(), 2.0, 2.0, interpolations[i]);
cv::resize(cpu_res1, cpu_res2, Size(), 0.5, 0.5, interpolations[i]);
GpuMat gpu1(img), gpu_res; GpuMat gpu1(img), gpu_res1, gpu_res2;
cv::gpu::resize(gpu1, gpu_res, Size(), 0.5, 0.5, interpolations[i]); cv::gpu::resize(gpu1, gpu_res1, Size(), 2.0, 2.0, interpolations[i]);
cv::gpu::resize(gpu_res1, gpu_res2, Size(), 0.5, 0.5, interpolations[i]);
if (CheckNorm(cpu_res, gpu_res) != CvTS::OK) switch (img.depth())
test_res = CvTS::FAIL_GENERIC; {
case CV_8U:
if (ChechSimilarity(cpu_res2, gpu_res2) != CvTS::OK)
test_res = CvTS::FAIL_GENERIC;
break;
}
} }
return test_res; return test_res;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment