fixed GPU meanshift segmentation test under Ubuntu
authorAlexey Spizhevoy <no@email>
Mon, 14 Feb 2011 08:56:57 +0000 (08:56 +0000)
committerAlexey Spizhevoy <no@email>
Mon, 14 Feb 2011 08:56:57 +0000 (08:56 +0000)
tests/gpu/src/mssegmentation.cpp

index f6a9e34..8a9ba88 100644 (file)
@@ -86,11 +86,10 @@ struct CV_GpuMeanShiftSegmentationTest : public CvTest {
                     ts->set_failed_test_info(CvTS::FAIL_MISSING_TEST_DATA);\r
                     return;\r
                 }\r
-                if (abs(cv::norm(dst_rgb - dst_ref, NORM_INF)) > 1e-3) \r
+                if (CheckSimilarity(dst_rgb, dst_ref, 1e-3f) != CvTS::OK)\r
                 {\r
                     ts->printf(CvTS::LOG, "\ndiffers from image *minsize%d.png\n", minsize);\r
                     ts->set_failed_test_info(CvTS::FAIL_BAD_ACCURACY);\r
-                    return;\r
                 }\r
             }\r
         }\r
@@ -103,4 +102,19 @@ struct CV_GpuMeanShiftSegmentationTest : public CvTest {
 \r
         ts->set_failed_test_info(CvTS::OK);\r
     }    \r
+\r
+    int CheckSimilarity(const Mat& m1, const Mat& m2, float max_err)\r
+    {\r
+        Mat diff;\r
+        cv::matchTemplate(m1, m2, diff, CV_TM_CCORR_NORMED);\r
+\r
+        float err = abs(diff.at<float>(0, 0) - 1.f);\r
+\r
+        if (err > max_err)\r
+            return CvTS::FAIL_INVALID_OUTPUT;\r
+\r
+        return CvTS::OK;\r
+    }\r
+\r
+\r
 } ms_segm_test;\r