http://www.emgu.com
Create a Good Feature to Track detector
Namespace: Emgu.CV.Features2DAssembly: Emgu.CV (in Emgu.CV.dll) Version: 3.0.0.2161 (3.0.0.2161)
Syntaxpublic GFTTDetector(
int maxCorners = 1000,
double qualityLevel = 0.01,
double minDistance = 1,
int blockSize = 3,
bool useHarrisDetector = false,
double k = 0.04
)
Public Sub New (
Optional maxCorners As Integer = 1000,
Optional qualityLevel As Double = 0.01,
Optional minDistance As Double = 1,
Optional blockSize As Integer = 3,
Optional useHarrisDetector As Boolean = false,
Optional k As Double = 0.04
)
public:
GFTTDetector(
int maxCorners = 1000,
double qualityLevel = 0.01,
double minDistance = 1,
int blockSize = 3,
bool useHarrisDetector = false,
double k = 0.04
)
new :
?maxCorners : int *
?qualityLevel : float *
?minDistance : float *
?blockSize : int *
?useHarrisDetector : bool *
?k : float
(* Defaults:
let _maxCorners = defaultArg maxCorners 1000
let _qualityLevel = defaultArg qualityLevel 0.01
let _minDistance = defaultArg minDistance 1
let _blockSize = defaultArg blockSize 3
let _useHarrisDetector = defaultArg useHarrisDetector false
let _k = defaultArg k 0.04
*)
-> GFTTDetector
Parameters
- maxCorners (Optional)
- Type: SystemInt32
The maximum number of features to be detected. - qualityLevel (Optional)
- Type: SystemDouble
Multiplier for the maxmin eigenvalue; specifies minimal accepted quality of image corners. - minDistance (Optional)
- Type: SystemDouble
Limit, specifying minimum possible distance between returned corners; Euclidian distance is used. - blockSize (Optional)
- Type: SystemInt32
Size of the averaging block, passed to underlying cvCornerMinEigenVal or cvCornerHarris used by the function. - useHarrisDetector (Optional)
- Type: SystemBoolean
If true, will use Harris corner detector. - k (Optional)
- Type: SystemDouble
K
RemarksThe function first calculates the minimal eigenvalue for every source image pixel using cvCornerMinEigenVal function and stores them in eig_image. Then it performs non-maxima suppression (only local maxima in 3x3 neighborhood remain). The next step is rejecting the corners with the minimal eigenvalue less than quality_level?max(eig_image(x,y)). Finally, the function ensures that all the corners found are distanced enough one from another by considering the corners (the most strongest corners are considered first) and checking that the distance between the newly considered feature and the features considered earlier is larger than min_distance. So, the function removes the features than are too close to the stronger features
See Also