From da3a60a5a7e8cadeb5397a37a9a934a98fada3b6 Mon Sep 17 00:00:00 2001 From: Leonid Beynenson Date: Wed, 12 Oct 2011 11:32:01 +0000 Subject: [PATCH] Made changes in the method of inserting prefilters into the CascadeClassifier class. --- modules/objdetect/include/opencv2/objdetect/objdetect.hpp | 1 + modules/objdetect/src/cascadedetect.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/modules/objdetect/include/opencv2/objdetect/objdetect.hpp b/modules/objdetect/include/opencv2/objdetect/objdetect.hpp index 126e6210c..49d42377e 100644 --- a/modules/objdetect/include/opencv2/objdetect/objdetect.hpp +++ b/modules/objdetect/include/opencv2/objdetect/objdetect.hpp @@ -474,6 +474,7 @@ public: { public: virtual cv::Mat generateMask(const cv::Mat& src)=0; + virtual void initializeMask(const cv::Mat& src) {}; }; void setMaskGenerator(Ptr maskGenerator); Ptr getMaskGenerator(); diff --git a/modules/objdetect/src/cascadedetect.cpp b/modules/objdetect/src/cascadedetect.cpp index 5d67764c7..6c90e7def 100644 --- a/modules/objdetect/src/cascadedetect.cpp +++ b/modules/objdetect/src/cascadedetect.cpp @@ -1029,6 +1029,11 @@ void CascadeClassifier::detectMultiScale( const Mat& image, vector& object objects.clear(); + if (!maskGenerator.empty()) { + maskGenerator->initializeMask(image); + } + + if( maxObjectSize.height == 0 || maxObjectSize.width == 0 ) maxObjectSize = image.size();