mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
Migrated goodFeaturesToTrack to features module.
This commit is contained in:
@@ -130,6 +130,91 @@ public:
|
||||
static void retainBest( std::vector<KeyPoint>& keypoints, int npoints );
|
||||
};
|
||||
|
||||
/** @brief 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 @cite 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
|
||||
\f$\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\f$ 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 .
|
||||
|
||||
@param image Input 8-bit or floating-point 32-bit, single-channel image.
|
||||
@param corners Output vector of detected corners.
|
||||
@param 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.
|
||||
@param 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.
|
||||
@param minDistance Minimum possible Euclidean distance between the returned corners.
|
||||
@param 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.
|
||||
@param blockSize Size of an average block for computing a derivative covariation matrix over each
|
||||
pixel neighborhood. See cornerEigenValsAndVecs .
|
||||
@param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)
|
||||
or #cornerMinEigenVal.
|
||||
@param k Free parameter of the Harris detector.
|
||||
|
||||
@sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,
|
||||
*/
|
||||
|
||||
CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners,
|
||||
int maxCorners, double qualityLevel, double minDistance,
|
||||
InputArray mask = noArray(), int blockSize = 3,
|
||||
bool useHarrisDetector = false, double k = 0.04 );
|
||||
|
||||
CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners,
|
||||
int maxCorners, double qualityLevel, double minDistance,
|
||||
InputArray mask, int blockSize,
|
||||
int gradientSize, bool useHarrisDetector = false,
|
||||
double k = 0.04 );
|
||||
|
||||
/** @brief Same as above, but returns also quality measure of the detected corners.
|
||||
|
||||
@param image Input 8-bit or floating-point 32-bit, single-channel image.
|
||||
@param corners Output vector of detected corners.
|
||||
@param 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.
|
||||
@param 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.
|
||||
@param minDistance Minimum possible Euclidean distance between the returned corners.
|
||||
@param mask 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.
|
||||
@param cornersQuality Output vector of quality measure of the detected corners.
|
||||
@param blockSize Size of an average block for computing a derivative covariation matrix over each
|
||||
pixel neighborhood. See cornerEigenValsAndVecs .
|
||||
@param gradientSize Aperture parameter for the Sobel operator used for derivatives computation.
|
||||
See cornerEigenValsAndVecs .
|
||||
@param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)
|
||||
or #cornerMinEigenVal.
|
||||
@param k Free parameter of the Harris detector.
|
||||
*/
|
||||
CV_EXPORTS CV_WRAP_AS(goodFeaturesToTrackWithQuality) void goodFeaturesToTrack(
|
||||
InputArray image, OutputArray corners,
|
||||
int maxCorners, double qualityLevel, double minDistance,
|
||||
InputArray mask, OutputArray cornersQuality, int blockSize = 3,
|
||||
int gradientSize = 3, bool useHarrisDetector = false, double k = 0.04);
|
||||
|
||||
/************************************ Base Classes ************************************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user