cv2.goodFeaturesToTrack()函数是用来跟踪检测图像中的角点
这里介绍的是C++中的用法
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 );
Python的用法是
corners=cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]])
corners=cv.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]])
从函数的定义中可以知道,
输入的参数分别是:
- image: 输入图像,是八位的或者32位浮点型,单通道图像,所以有时候用灰度图
- maxCorners: 返回最大的角点数,是最有可能的角点数,如果这个参数不大于0,那么表示没有角点数的限制。
- qualityLevel: 图像角点的最小可接受参数,质量测量值乘以这个参数就是最小特征值,小于这个数的会被抛弃。
- minDistance: 返回的角点之间最小的欧式距离。
- mask: 检测区域。如果图像不是空的(它需要具有CV_8UC1类型和与图像相同的大小),它指定检测角的区域。
- blockSize: 用于计算每个像素邻域上的导数协变矩阵的平均块的大小。
- useHarrisDetector:选择是否采用Harris角点检测,默认是false.
- k: Harris检测的自由参数。
输出参数:
1.corners: 输出为角点。
部分参考来源:
https://docs.opencv.org/4.1.0/dd/d1a/group__imgproc__feature.html#ga1d6bb77486c8f92d79c8793ad995d541