#include #include #include #include #include #ifndef DEF_COLOR_BLOB_SEARCHER_H #define DEF_COLOR_BLOB_SEARCHER_H namespace icl{ class DefaultColorBlobSearcher : public ColorBlobSearcher{ public: enum RatingCombinationType { rctOR, rctAND }; enum CenterEstimationType { cetMean, cetMedian }; DefaultColorBlobSearcher(const Size &imageSize); virtual ~DefaultColorBlobSearcher(); typedef vector fmlVec; typedef vector cetVec; int addSubSearcher(const vector &rs, const vector &gs, const vector &bs, const icl8u thresholds[3], RatingCombinationType rct=rctOR, CenterEstimationType cet=cetMedian); // just passing to the parent class virtual const FoundBlobVector &search(Img8u *poImage, Img8u *poMask); // returns the current image size of this const Size &getImageSize() const; void setImageSize(const Size &size); protected: virtual void prepareForNewImage(Img8u *poImage, Img8u *poMask); virtual void storeResult(int iPRIndex, int x, int y, bool rating); virtual void evaluateResults(FoundBlobVector &resultDestination); virtual void pixelRatingAdded(pixelrating *pr); virtual void pixelRatingRemoved(int index); private: Size m_oImageSize; fmlVec m_vecXMedianLists; fmlVec m_vecYMedianLists; cetVec m_vecCet; }; } #endif