提交 e19a12f6 编写于 作者: V Vadim Pisarevsky

Merge pull request #3361 from mshabunin:fix-drawing

...@@ -75,11 +75,12 @@ void CV_DrawingTest::run( int ) ...@@ -75,11 +75,12 @@ void CV_DrawingTest::run( int )
} }
else else
{ {
float err = (float)cvtest::norm( testImg, valImg, CV_RELATIVE_L1 ); // image should match exactly
float Eps = 0.9f; float err = (float)cvtest::norm( testImg, valImg, NORM_L1 );
float Eps = 1;
if( err > Eps) if( err > Eps)
{ {
ts->printf( ts->LOG, "CV_RELATIVE_L1 between testImg and valImg is equal %f (larger than %f)\n", err, Eps ); ts->printf( ts->LOG, "NORM_L1 between testImg and valImg is equal %f (larger than %f)\n", err, Eps );
ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY); ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY);
} }
else else
...@@ -261,6 +262,7 @@ void CV_DrawingTest_C::draw( Mat& _img ) ...@@ -261,6 +262,7 @@ void CV_DrawingTest_C::draw( Mat& _img )
polyline[3] = cvPoint(0, imgSize.height); polyline[3] = cvPoint(0, imgSize.height);
CvPoint* pts = &polyline[0]; CvPoint* pts = &polyline[0];
int n = (int)polyline.size(); int n = (int)polyline.size();
int actualSize = 0;
cvFillPoly( &img, &pts, &n, 1, cvScalar(255,255,255) ); cvFillPoly( &img, &pts, &n, 1, cvScalar(255,255,255) );
CvPoint p1 = cvPoint(1,1), p2 = cvPoint(3,3); CvPoint p1 = cvPoint(1,1), p2 = cvPoint(3,3);
...@@ -290,7 +292,8 @@ void CV_DrawingTest_C::draw( Mat& _img ) ...@@ -290,7 +292,8 @@ void CV_DrawingTest_C::draw( Mat& _img )
polyline.resize(9); polyline.resize(9);
pts = &polyline[0]; pts = &polyline[0];
n = (int)polyline.size(); n = (int)polyline.size();
assert( cvEllipse2Poly( cvPoint(430,180), cvSize(100,150), 30, 0, 150, &polyline[0], 20 ) == n ); actualSize = cvEllipse2Poly( cvPoint(430,180), cvSize(100,150), 30, 0, 150, &polyline[0], 20 );
CV_Assert(actualSize == n);
cvPolyLine( &img, &pts, &n, 1, false, cvScalar(0,0,150), 4, CV_AA ); cvPolyLine( &img, &pts, &n, 1, false, cvScalar(0,0,150), 4, CV_AA );
n = 0; n = 0;
for( vector<CvPoint>::const_iterator it = polyline.begin(); n < (int)polyline.size()-1; ++it, n++ ) for( vector<CvPoint>::const_iterator it = polyline.begin(); n < (int)polyline.size()-1; ++it, n++ )
...@@ -301,7 +304,8 @@ void CV_DrawingTest_C::draw( Mat& _img ) ...@@ -301,7 +304,8 @@ void CV_DrawingTest_C::draw( Mat& _img )
polyline.resize(19); polyline.resize(19);
pts = &polyline[0]; pts = &polyline[0];
n = (int)polyline.size(); n = (int)polyline.size();
assert( cvEllipse2Poly( cvPoint(500,300), cvSize(50,80), 0, 0, 180, &polyline[0], 10 ) == n ); actualSize = cvEllipse2Poly( cvPoint(500,300), cvSize(50,80), 0, 0, 180, &polyline[0], 10 );
CV_Assert(actualSize == n);
cvPolyLine( &img, &pts, &n, 1, true, Scalar(100,200,100), 20 ); cvPolyLine( &img, &pts, &n, 1, true, Scalar(100,200,100), 20 );
cvFillConvexPoly( &img, pts, n, cvScalar(0, 80, 0) ); cvFillConvexPoly( &img, pts, n, cvScalar(0, 80, 0) );
......
...@@ -147,10 +147,13 @@ public: ...@@ -147,10 +147,13 @@ public:
CV_Assert(img.size() == img_test.size()); CV_Assert(img.size() == img_test.size());
CV_Assert(img.type() == img_test.type()); CV_Assert(img.type() == img_test.type());
double n = cvtest::norm(img, img_test, NORM_L2); // JPEG format does not provide 100% accuracy
if ( n > 1.0) // using fuzzy image comparison
double n = cvtest::norm(img, img_test, NORM_L1);
double expected = 0.05 * img.size().area();
if ( n > expected)
{ {
ts->printf(ts->LOG, "norm = %f \n", n); ts->printf(ts->LOG, "norm = %f > expected = %f \n", n, expected);
ts->set_failed_test_info(ts->FAIL_MISMATCH); ts->set_failed_test_info(ts->FAIL_MISMATCH);
} }
} }
......
...@@ -108,7 +108,7 @@ TEST(Videoio_Video, actual_resolution) ...@@ -108,7 +108,7 @@ TEST(Videoio_Video, actual_resolution)
} }
} }
TEST(Videoio_Video, prop_fps) TEST(Videoio_Video, DISABLED_prop_fps)
{ {
const size_t n = sizeof(ext)/sizeof(ext[0]); const size_t n = sizeof(ext)/sizeof(ext[0]);
const string src_dir = TS::ptr()->get_data_path(); const string src_dir = TS::ptr()->get_data_path();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册