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
\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