[−][src]Function opencv::imgproc::good_features_to_track
pub fn good_features_to_track(
image: &dyn ToInputArray,
corners: &mut dyn ToOutputArray,
max_corners: i32,
quality_level: f64,
min_distance: f64,
mask: &dyn ToInputArray,
block_size: i32,
use_harris_detector: bool,
k: f64
) -> Result<()>
Determines strong corners on an image.
The function finds the most prominent corners in the image or in the specified image region, as described in Shi94
- Function calculates the corner quality measure at every source image pixel using the #cornerMinEigenVal or #cornerHarris .
- Function performs a non-maximum suppression (the local maximums in 3 x 3 neighborhood are retained).
- The corners with the minimal eigenvalue less than are rejected.
- The remaining corners are sorted by the quality measure in the descending order.
- Function throws away each corner for which there is a stronger corner at a distance less than maxDistance.
The function can be used to initialize a point-based tracker of an object.
Note: If the function is called with different values A and B of the parameter qualityLevel , and A > B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector with qualityLevel=B .
Parameters
- image: Input 8-bit or floating-point 32-bit, single-channel image.
- corners: Output vector of detected corners.
- maxCorners: Maximum number of corners to return. If there are more corners than are found,
the strongest of them is returned.
maxCorners <= 0
implies that no limit on the maximum is set and all detected corners are returned. - qualityLevel: Parameter characterizing the minimal accepted quality of image corners. The parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue (see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the quality measure less than the product are rejected. For example, if the best corner has the quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure less than 15 are rejected.
- minDistance: Minimum possible Euclidean distance between the returned corners.
- mask: Optional region of interest. If the image is not empty (it needs to have the type CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected.
- blockSize: Size of an average block for computing a derivative covariation matrix over each pixel neighborhood. See cornerEigenValsAndVecs .
- useHarrisDetector: Parameter indicating whether to use a Harris detector (see #cornerHarris) or #cornerMinEigenVal.
- k: Free parameter of the Harris detector.
See also
cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,
C++ default parameters
- mask: noArray()
- block_size: 3
- use_harris_detector: false
- k: 0.04