performance test for INTER_AREA resize has been added.
authorMarina Kolpakova <no@email>
Wed, 6 Jun 2012 14:45:33 +0000 (14:45 +0000)
committerMarina Kolpakova <no@email>
Wed, 6 Jun 2012 14:45:33 +0000 (14:45 +0000)
modules/gpu/perf/perf_imgproc.cpp
modules/gpu/perf/perf_utility.hpp
modules/gpu/perf_cpu/perf_imgproc.cpp
modules/gpu/perf_cpu/perf_utility.hpp
modules/gpu/src/cuda/resize.cu
modules/gpu/test/test_resize.cpp
modules/imgproc/test/test_imgwarp.cpp

index 42c5eb2..3a714c2 100644 (file)
@@ -86,8 +86,9 @@ INSTANTIATE_TEST_CASE_P(ImgProc, Resize, testing::Combine(
     testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),\r
                     MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),\r
                     MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),\r
-    testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR), Interpolation(cv::INTER_CUBIC)),\r
-    testing::Values(Scale(0.5), Scale(2.0))));\r
+    testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR),\r
+                    Interpolation(cv::INTER_CUBIC),   Interpolation(cv::INTER_AREA)),\r
+    testing::Values(Scale(0.5), Scale(0.3)/*, Scale(2.0)*/)));\r
 \r
 //////////////////////////////////////////////////////////////////////\r
 // WarpAffine\r
index 6bfc9c8..8693cfc 100644 (file)
@@ -7,7 +7,7 @@ using perf::MatType;
 using perf::MatDepth;\r
 \r
 CV_ENUM(BorderMode, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP)\r
-CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC)\r
+        CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA)\r
 CV_ENUM(NormType, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_HAMMING)\r
 \r
 struct CvtColorInfo\r
index 64f5862..68f38af 100644 (file)
@@ -76,8 +76,9 @@ INSTANTIATE_TEST_CASE_P(ImgProc, Resize, testing::Combine(
     testing::Values(MatType(CV_8UC1), MatType(CV_8UC3), MatType(CV_8UC4),\r
                     MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4),\r
                     MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),\r
-    testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR), Interpolation(cv::INTER_CUBIC)),\r
-    testing::Values(Scale(0.5), Scale(2.0))));\r
+    testing::Values(Interpolation(cv::INTER_NEAREST), Interpolation(cv::INTER_LINEAR),\r
+                    Interpolation(cv::INTER_CUBIC),   Interpolation(cv::INTER_AREA)),\r
+    testing::Values(Scale(0.5), Scale(0.3)/*, Scale(2.0)*/)));\r
 \r
 //////////////////////////////////////////////////////////////////////\r
 // WarpAffine\r
index 6bfc9c8..8693cfc 100644 (file)
@@ -7,7 +7,7 @@ using perf::MatType;
 using perf::MatDepth;\r
 \r
 CV_ENUM(BorderMode, cv::BORDER_REFLECT101, cv::BORDER_REPLICATE, cv::BORDER_CONSTANT, cv::BORDER_REFLECT, cv::BORDER_WRAP)\r
-CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC)\r
+        CV_ENUM(Interpolation, cv::INTER_NEAREST, cv::INTER_LINEAR, cv::INTER_CUBIC, cv::INTER_AREA)\r
 CV_ENUM(NormType, cv::NORM_INF, cv::NORM_L1, cv::NORM_L2, cv::NORM_HAMMING)\r
 \r
 struct CvtColorInfo\r
index 813bced..e1694db 100644 (file)
@@ -105,6 +105,8 @@ namespace cv { namespace gpu { namespace device
                 AreaFilter< BorderReader< PtrStep<T>, BrdConstant<T> > > filteredSrc(brdSrc, fx, fy);\r
                 resize_area<<<grid, block, 0, stream>>>(filteredSrc, fx, fy, dst);\r
                 cudaSafeCall( cudaGetLastError() );\r
+                if (stream == 0)\r
+                    cudaSafeCall( cudaDeviceSynchronize() );\r
             }\r
         };\r
 \r
@@ -120,6 +122,8 @@ namespace cv { namespace gpu { namespace device
                 IntegerAreaFilter< BorderReader< PtrStep<T>, BrdConstant<T> > > filteredSrc(brdSrc, fx, fy);\r
                 resize_area<<<grid, block, 0, stream>>>(filteredSrc, fx, fy, dst);\r
                 cudaSafeCall( cudaGetLastError() );\r
+                if (stream == 0)\r
+                    cudaSafeCall( cudaDeviceSynchronize() );\r
             }\r
         };\r
 \r
index 2204833..22d7ba3 100644 (file)
@@ -198,7 +198,7 @@ INSTANTIATE_TEST_CASE_P(GPU_ImgProc, ResizeArea, testing::Combine(
     ALL_DEVICES,\r
     DIFFERENT_SIZES,\r
     testing::Values(MatType(CV_8UC3), MatType(CV_16UC1), MatType(CV_16UC3), MatType(CV_16UC4), MatType(CV_32FC1), MatType(CV_32FC3), MatType(CV_32FC4)),\r
-    testing::Values(/*0.3,*/0.5),\r
+    testing::Values(0.3, 0.5),\r
     testing::Values(Interpolation(cv::INTER_AREA)),\r
     WHOLE_SUBMAT));\r
 \r
index 5d45ccb..afc0bc5 100644 (file)
@@ -1495,8 +1495,6 @@ TEST(Imgproc_resize_area, regression)
     cv::Mat expected(5,5,CV_16UC1, expected_data);
 
     cv::resize(src, actual, cv::Size(), 0.3, 0.3, INTER_AREA);
-    std::cout << actual << std::endl;
-    std::cout << expected << std::endl;
 
     ASSERT_EQ(actual.type(), expected.type());
     ASSERT_EQ(actual.size(), expected.size());