Loading...
Searching...
No Matches

Maximally stable extremal region extractor. More...

#include <opencv2/features2d.hpp>

Inheritance diagram for cv::MSER:
cv::Feature2D cv::Algorithm

Public Member Functions

virtual void detectRegions (InputArray image, std::vector< std::vector< Point > > &msers, std::vector< Rect > &bboxes)=0
 Detect MSER regions.
 
virtual double getAreaThreshold () const =0
 
virtual String getDefaultName () const CV_OVERRIDE
 
virtual int getDelta () const =0
 
virtual int getEdgeBlurSize () const =0
 
virtual int getMaxArea () const =0
 
virtual int getMaxEvolution () const =0
 
virtual double getMaxVariation () const =0
 
virtual int getMinArea () const =0
 
virtual double getMinDiversity () const =0
 
virtual double getMinMargin () const =0
 
virtual bool getPass2Only () const =0
 
virtual void setAreaThreshold (double areaThreshold)=0
 
virtual void setDelta (int delta)=0
 
virtual void setEdgeBlurSize (int edge_blur_size)=0
 
virtual void setMaxArea (int maxArea)=0
 
virtual void setMaxEvolution (int maxEvolution)=0
 
virtual void setMaxVariation (double maxVariation)=0
 
virtual void setMinArea (int minArea)=0
 
virtual void setMinDiversity (double minDiversity)=0
 
virtual void setMinMargin (double min_margin)=0
 
virtual void setPass2Only (bool f)=0
 
- Public Member Functions inherited from cv::Feature2D
virtual ~Feature2D ()
 
virtual void compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors)
 Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
 
virtual void compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
 
virtual int defaultNorm () const
 
virtual int descriptorSize () const
 
virtual int descriptorType () const
 
virtual void detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
 Detects keypoints in an image (first variant) or image set (second variant).
 
virtual void detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
 
virtual void detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
 
virtual bool empty () const CV_OVERRIDE
 Return true if detector object is empty.
 
virtual String getDefaultName () const CV_OVERRIDE
 
virtual void read (const FileNode &) CV_OVERRIDE
 Reads algorithm parameters from a file storage.
 
void read (const String &fileName)
 
void write (const Ptr< FileStorage > &fs, const String &name) const
 
void write (const String &fileName) const
 
virtual void write (FileStorage &) const CV_OVERRIDE
 Stores algorithm parameters in a file storage.
 
void write (FileStorage &fs, const String &name) const
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 Clears the algorithm state.
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage.
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage.
 
void write (FileStorage &fs, const String &name) const
 

Static Public Member Functions

static Ptr< MSERcreate (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)
 Full constructor for MSER detector.
 
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 Loads algorithm from the file.
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String.
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 Reads algorithm from the file node.
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

Detailed Description

Maximally stable extremal region extractor.

The class encapsulates all the parameters of the MSER extraction algorithm (see wiki article).

  • there are two different implementation of MSER: one for grey image, one for color image
  • the grey image algorithm is taken from: [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: [forssen2007maximally] ; it should be much slower than grey image method ( 3~4 times )
  • (Python) A complete example showing the use of the MSER detector can be found at samples/python/mser.py

Member Function Documentation

◆ create()

static Ptr< MSER > cv::MSER::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 
)
static

Full constructor for MSER detector.

Parameters
deltait compares \((size_{i}-size_{i-delta})/size_{i-delta}\)
min_areaprune the area which smaller than minArea
max_areaprune the area which bigger than maxArea
max_variationprune the area have similar size to its children
min_diversityfor color image, trace back to cut off mser with diversity less than min_diversity
max_evolutionfor color image, the evolution steps
area_thresholdfor color image, the area threshold to cause re-initialize
min_marginfor color image, ignore too small margin
edge_blur_sizefor color image, the aperture size for edge blur

◆ detectRegions()

virtual void cv::MSER::detectRegions ( InputArray  image,
std::vector< std::vector< Point > > &  msers,
std::vector< Rect > &  bboxes 
)
pure virtual

Detect MSER regions.

Parameters
imageinput image (8UC1, 8UC3 or 8UC4, must be greater or equal than 3x3)
msersresulting list of point sets
bboxesresulting bounding boxes

◆ getAreaThreshold()

virtual double cv::MSER::getAreaThreshold ( ) const
pure virtual

◆ getDefaultName()

virtual String cv::MSER::getDefaultName ( ) const
virtual

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.

Reimplemented from cv::Feature2D.

◆ getDelta()

virtual int cv::MSER::getDelta ( ) const
pure virtual

◆ getEdgeBlurSize()

virtual int cv::MSER::getEdgeBlurSize ( ) const
pure virtual

◆ getMaxArea()

virtual int cv::MSER::getMaxArea ( ) const
pure virtual

◆ getMaxEvolution()

virtual int cv::MSER::getMaxEvolution ( ) const
pure virtual

◆ getMaxVariation()

virtual double cv::MSER::getMaxVariation ( ) const
pure virtual

◆ getMinArea()

virtual int cv::MSER::getMinArea ( ) const
pure virtual

◆ getMinDiversity()

virtual double cv::MSER::getMinDiversity ( ) const
pure virtual

◆ getMinMargin()

virtual double cv::MSER::getMinMargin ( ) const
pure virtual

◆ getPass2Only()

virtual bool cv::MSER::getPass2Only ( ) const
pure virtual

◆ setAreaThreshold()

virtual void cv::MSER::setAreaThreshold ( double  areaThreshold)
pure virtual

◆ setDelta()

virtual void cv::MSER::setDelta ( int  delta)
pure virtual

◆ setEdgeBlurSize()

virtual void cv::MSER::setEdgeBlurSize ( int  edge_blur_size)
pure virtual

◆ setMaxArea()

virtual void cv::MSER::setMaxArea ( int  maxArea)
pure virtual

◆ setMaxEvolution()

virtual void cv::MSER::setMaxEvolution ( int  maxEvolution)
pure virtual

◆ setMaxVariation()

virtual void cv::MSER::setMaxVariation ( double  maxVariation)
pure virtual

◆ setMinArea()

virtual void cv::MSER::setMinArea ( int  minArea)
pure virtual

◆ setMinDiversity()

virtual void cv::MSER::setMinDiversity ( double  minDiversity)
pure virtual

◆ setMinMargin()

virtual void cv::MSER::setMinMargin ( double  min_margin)
pure virtual

◆ setPass2Only()

virtual void cv::MSER::setPass2Only ( bool  f)
pure virtual

The documentation for this class was generated from the following file: