From 0d16a9befb05858d1857bb2e06912a28b1c3e805 Mon Sep 17 00:00:00 2001 From: gpsinghsandhu Date: Sat, 30 Mar 2013 00:33:22 +0530 Subject: [PATCH] In response to Bug #2927 change to reject contours with moms.m00 = 0.0 --- modules/features2d/src/blobdetector.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/features2d/src/blobdetector.cpp b/modules/features2d/src/blobdetector.cpp index 3f50f3c1af..7b633eef48 100644 --- a/modules/features2d/src/blobdetector.cpp +++ b/modules/features2d/src/blobdetector.cpp @@ -240,6 +240,13 @@ void SimpleBlobDetector::findBlobs(const cv::Mat &image, const cv::Mat &binaryIm continue; } + bool blob_valid = true; + + if (moms.m00 == 0.0) + { + blob_valid = false; + } + center.location = Point2d(moms.m10 / moms.m00, moms.m01 / moms.m00); if (params.filterByColor) @@ -260,7 +267,10 @@ void SimpleBlobDetector::findBlobs(const cv::Mat &image, const cv::Mat &binaryIm center.radius = (dists[(dists.size() - 1) / 2] + dists[dists.size() / 2]) / 2.; } - centers.push_back(center); + if (blob_valid) + { + centers.push_back(center); + } #ifdef DEBUG_BLOB_DETECTOR // circle( keypointsImage, center.location, 1, Scalar(0,0,255), 1 );