OpenCV:goodFeaturesToTrack角点检测的应用

绪:
最常用的角点检测方式是Harris角点检测,
OpenCV供给了Harris角点检测的接口cornerHarris(),但Harris检测的角点是像素级的,且检测速度较慢;
这里介绍OpenCV另一个功能更为壮大角点检测函数goodFeaturesToTrack(),
不仅撑持Harris角点检测,也撑持Shi Tomasi算法的角点检测 。
但该函数检测的角点依然是像素级此外 。
若想获取更为邃密的角点坐标,
则需要与cornerSubPix()函数共同利用,获得亚像素角点 。

OpenCV:goodFeaturesToTrack角点检测的应用

文章插图

需要这些哦
opencv 2410
方式/
1goodFeaturesToTrack格局:
void goodFeaturesToTrack(
                      InputArray image,  //输入图像 
                       OutputArray corners, //输出角点vector 
                       int maxCorners,  //最年夜角点数量 
                       double qualityLevel, // 质量程度系数                       
                       double minDistance, // 最小距离,小于此距离的点忽略 
                       InputArray mask = noArray(), // mask=0的点忽略 
                       int blockSize = 3, //邻域数 
                      bool useHarrisDetector = false, // false =Shi Tomasi metric 
                       double k = 0.04 //Harris角点检测时利用 
); 
参数:
第一个参数是输入图像(8位或32位单通道图);
第二个参数是检测的所有角点,类型为vector或数组,由给定的参数类型而定 。 若是是vector,那么它应该是一个包含cv::Point2f的vector对象;若是类型是cv::Mat,那么它的每一行对应一个角点,点的x、y位置别离是两列;
第三个参数用于限制检测到的点数的最年夜值;
第四个参数暗示检测到的角点的质量程度(凡是是0.10到0.01之间的数值,不克不及年夜于1.0);
第五个参数用于区分相邻两个角点的最小距离(小于这个距离得点将进行归并);
第六个参数是mask,若是指定,它的维度必需和输入图像一致,且在mask值为0处不进行角点检测 。
第七个参数是blockSize,暗示在计较角点时介入运算的区域大小,常用值为3,可是若是图像的分辩率较高则可以考虑利用较年夜一点的值;
第八个参数用于指定角点检测的方式,若是是true则利用Harris角点检测,false则利用Shi Tomasi算法;
第九个参数是在利用Harris算法时利用,最好利用默认值0.04;

OpenCV:goodFeaturesToTrack角点检测的应用

文章插图

2goodFeaturesToTrack应用

推荐阅读