[][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 inline formula 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