#ifndef BLOBDETECTOR_H #define BLOBDETECTOR_H #include #include #include "opencv2/core/core_c.h" #include #include "blob.h" #include "BlobOperators.h" #include "ComponentLabeling.h" #include "BlobGroup.h" class BlobDetector { public: BlobDetector(); BlobDetector(IplImage* source, IplImage* mask = NULL, int numThreads = 1); BlobDetector(cv::Mat& source, const cv::Mat& mask = cv::Mat(), int numThreads = 1); BlobDetector(const BlobDetector& source); BlobDetector& operator=(const BlobDetector& source); BlobDetector(BlobDetector&& source) noexcept; BlobDetector& operator=(BlobDetector&& source) noexcept; //! Destructor virtual ~BlobDetector(); //! Function to detect blobs in a new image const BlobGroup& detect(cv::Mat& source, const cv::Mat& mask = cv::Mat(), int numThreads = 1); const BlobGroup& getBlobGroup(); private: CompLabelerGroup m_compLabeler; BlobGroup m_blobGroup; }; #endif // BLOBDETECTOR_H