MSER: all test passed.

1. if a component's variation is a global minimum than it should be a local minimum
2. for the small image with invert and blur, the MSERs number should be 20
This commit is contained in:
will hunt 2016-08-07 08:38:38 +08:00
parent c3d2921971
commit ac2d79fd67
3 changed files with 4 additions and 4 deletions

View File

@ -211,7 +211,7 @@ public:
return;
}
}
if( parent_ && parent_->var >= 0.f && var >= parent_->var )
if( var > 0.f && parent_ && parent_->var >= 0.f && var >= parent_->var )
return;
int xmin = INT_MAX, ymin = INT_MAX, xmax = INT_MIN, ymax = INT_MIN, j = 0;
wp.msers->push_back(vector<Point>());

View File

@ -132,7 +132,7 @@ TEST(Features2d_MSER, cases)
GaussianBlur(src, src, Size(5, 5), 1.5, 1.5);
int minRegs = use_big_image ? 7 : 2;
int maxRegs = use_big_image ? 1000 : 15;
int maxRegs = use_big_image ? 1000 : 20;
if( binarize && (thresh == 0 || thresh == 255) )
minRegs = maxRegs = 0;

View File

@ -59,11 +59,11 @@ class mser_test(NewOpenCVTests):
if blur:
src = cv2.GaussianBlur(src, (5, 5), 1.5, 1.5)
minRegs = 7 if use_big_image else 2
maxRegs = 1000 if use_big_image else 15
maxRegs = 1000 if use_big_image else 20
if binarize and (thresh == 0 or thresh == 255):
minRegs = maxRegs = 0
msers, boxes = mserExtractor.detectRegions(src)
nmsers = len(msers)
self.assertEqual(nmsers, len(boxes))
self.assertLessEqual(minRegs, nmsers)
self.assertGreaterEqual(maxRegs, nmsers)
self.assertGreaterEqual(maxRegs, nmsers)