@Reference(type=Article, author={"J Matas","O Chum","M Urban","T Pajdla"}, title="Robust wide-baseline stereo from maximally stable extremal regions", year="2004", journal="Image and Vision Computing", pages={"761 "," 767"}, url="http://www.sciencedirect.com/science/article/pii/S0262885604000435", number="10", volume="22", customData={"issn","0262-8856","doi","10.1016/j.imavis.2004.02.006","keywords","Robust metric"}) public class MSERDetector extends Object
detect()
method returns a list of MSER components. The components
are also marked as MSERs in the merge tree, such that the tree can be used to
determine the hierarchical nature of the MSERs. Use the
Component.isMSER
to determine if the component in the tree is an
MSER.
(From http://www.vlfeat.org/overview/mser.html) The stability of an extremal region R is the inverse of the relative area variation of the region R when the intensity level is increased by d. Formally, the variation is defined as:where |R| denotes the area of the extremal region R, R(+d) is the extremal region +d levels up which contains R and |R(+d) - R| is the area difference of the two regions. A stable region has a small variation. The algorithm finds regions which are "maximally stable", meaning that they have a lower variation than the regions one level below or above. Note that due to the discrete nature of the image, the region below / above may be coincident with the actual region, in which case the region is still deemed maximal. However, even if an extremal region is maximally stable, it might be rejected if: it is too big (see the parameter maxArea); it is too small (see the parameter minArea); it is too unstable (see the parameter maxVariation); it is too similar to its parent MSER (see the parameter minDiversity).|R(+d) - R| ----------- |R|
Constructor and Description |
---|
MSERDetector(TreeNode<Component> mergeTree)
Constructor that takes the merge tree from the watershed algorithm.
|
Modifier and Type | Method and Description |
---|---|
List<Component> |
detect()
Detect MSERs in the merge tree provided in the constructor.
|
int |
getDelta() |
int |
getMaxArea() |
float |
getMaxVariation() |
TreeNode<Component> |
getMergeTree() |
int |
getMinArea() |
float |
getMinDiversity() |
void |
setDelta(int delta) |
void |
setMaxArea(int maxArea) |
void |
setMaxVariation(float maxVariation) |
void |
setMinArea(int minArea) |
void |
setMinDiversity(float minDiversity) |
public MSERDetector(TreeNode<Component> mergeTree)
mergeTree
- The merge treepublic List<Component> detect()
public int getMaxArea()
public void setMaxArea(int maxArea)
maxArea
- the maxArea to setpublic int getMinArea()
public void setMinArea(int minArea)
minArea
- the minArea to setpublic float getMaxVariation()
public void setMaxVariation(float maxVariation)
maxVariation
- the maxVariation to setpublic float getMinDiversity()
public void setMinDiversity(float minDiversity)
minDiversity
- the minDiversity to setpublic TreeNode<Component> getMergeTree()
public int getDelta()
public void setDelta(int delta)
delta
- the delta to set