diff --git a/doc/opencv.bib b/doc/opencv.bib index b2e5002224c173e08068d2e98be57a971793f8ea..839ff886a76f7273d939c5cc6be5d0cc0c7c0a26 100644 --- a/doc/opencv.bib +++ b/doc/opencv.bib @@ -848,3 +848,19 @@ year={2007}, publisher={Springer} } +@incollection{nister2008linear, + title={Linear time maximally stable extremal regions}, + author={Nist{\'e}r, David and Stew{\'e}nius, Henrik}, + booktitle={Computer Vision--ECCV 2008}, + pages={183--196}, + year={2008}, + publisher={Springer} +} +@inproceedings{forssen2007maximally, + title={Maximally stable colour regions for recognition and matching}, + author={Forss{\'e}n, Per-Erik}, + booktitle={Computer Vision and Pattern Recognition, 2007. CVPR'07. IEEE Conference on}, + pages={1--8}, + year={2007}, + organization={IEEE} +} diff --git a/modules/features2d/include/opencv2/features2d.hpp b/modules/features2d/include/opencv2/features2d.hpp index cf95e7d3439dafce3d1646f0e1e274337aee2fe6..2542d537f211db809897a2bc0c7de12275553ba9 100644 --- a/modules/features2d/include/opencv2/features2d.hpp +++ b/modules/features2d/include/opencv2/features2d.hpp @@ -317,25 +317,48 @@ public: CV_WRAP virtual int getFastThreshold() const = 0; }; -/** @brief Maximally stable extremal region extractor. : +/** @brief Maximally stable extremal region extractor -The class encapsulates all the parameters of the MSER extraction algorithm (see -). Also see - for useful comments and parameters description. +The class encapsulates all the parameters of the %MSER extraction algorithm (see [wiki +article](http://en.wikipedia.org/wiki/Maximally_stable_extremal_regions)). -@note - - (Python) A complete example showing the use of the MSER detector can be found at - opencv_source_code/samples/python2/mser.py - */ +- there are two different implementation of %MSER: one for grey image, one for color image + +- the grey image algorithm is taken from: @cite nister2008linear ; the paper claims to be faster +than union-find method; it actually get 1.5~2m/s on my centrino L7200 1.2GHz laptop. + +- the color image algorithm is taken from: @cite forssen2007maximally ; it should be much slower +than grey image method ( 3~4 times ); the chi_table.h file is taken directly from paper's source +code which is distributed under GPL. + +- (Python) A complete example showing the use of the %MSER detector can be found at samples/python2/mser.py +*/ class CV_EXPORTS_W MSER : public Feature2D { public: - //! the full constructor + /** @brief Full consturctor for %MSER detector + + @param _delta it compares \f$(size_{i}-size_{i-delta})/size_{i-delta}\f$ + @param _min_area prune the area which smaller than minArea + @param _max_area prune the area which bigger than maxArea + @param _max_variation prune the area have simliar size to its children + @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity + @param _max_evolution for color image, the evolution steps + @param _area_threshold for color image, the area threshold to cause re-initialize + @param _min_margin for color image, ignore too small margin + @param _edge_blur_size for color image, the aperture size for edge blur + */ CV_WRAP static Ptr create( int _delta=5, int _min_area=60, int _max_area=14400, double _max_variation=0.25, double _min_diversity=.2, int _max_evolution=200, double _area_threshold=1.01, double _min_margin=0.003, int _edge_blur_size=5 ); + /** @brief Detect %MSER regions + + @param image input image (8UC1, 8UC3 or 8UC4) + @param msers resulting list of point sets + @param bboxes resulting bounding boxes + */ CV_WRAP virtual void detectRegions( InputArray image, CV_OUT std::vector >& msers, std::vector& bboxes ) = 0;