From aab390c51d4b1d6787bfa386a18fab3b85cca6ba Mon Sep 17 00:00:00 2001 From: mworchel Date: Thu, 25 Jan 2018 13:34:12 +0100 Subject: [PATCH] Add mask support to SimpleBlobDetector --- modules/features2d/src/blobdetector.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/features2d/src/blobdetector.cpp b/modules/features2d/src/blobdetector.cpp index 72ff57bda9..d3f6a6d709 100644 --- a/modules/features2d/src/blobdetector.cpp +++ b/modules/features2d/src/blobdetector.cpp @@ -304,11 +304,10 @@ void SimpleBlobDetectorImpl::findBlobs(InputArray _image, InputArray _binaryImag #endif } -void SimpleBlobDetectorImpl::detect(InputArray image, std::vector& keypoints, InputArray) +void SimpleBlobDetectorImpl::detect(InputArray image, std::vector& keypoints, InputArray mask) { CV_INSTRUMENT_REGION() - //TODO: support mask keypoints.clear(); Mat grayscaleImage; if (image.channels() == 3 || image.channels() == 4) @@ -372,6 +371,11 @@ void SimpleBlobDetectorImpl::detect(InputArray image, std::vector& KeyPoint kpt(sumPoint, (float)(centers[i][centers[i].size() / 2].radius) * 2.0f); keypoints.push_back(kpt); } + + if (!mask.empty()) + { + KeyPointsFilter::runByPixelsMask(keypoints, mask.getMat()); + } } Ptr SimpleBlobDetector::create(const SimpleBlobDetector::Params& params)