角点位于两条边缘的交汇处,代表了两个边缘变化的方向上的点,其不同方向的灰度值变化比较大,因此比较容易检测。
角点检测方法的一个很重要的评价标准是其对多幅图像中相同或相似特征的检测能力,并且能够应对光照变化、图像旋转等变化。
Harris 角点
Harris角点检测是一种直接基于灰度图像的焦点提取算法,稳定性高,尤其是对 L 型角点检测精度高,但由于采用了高斯滤波,运算速度相对较慢,角点信息有丢失和位置偏移的现象,而且角点提取有聚簇现象。
1, cornerHarris() 函数,实现Harris角点检测。函数原型如下:
void cornerHarris(InputArray src, OutputArray dst, int blockSize, int ksize, double k, int borderType = BORDER_DEFAULT);
(1)第一个参数,InputArray 类型的 src,源图像。8 为单通道图像。
(2)第二个参数,OutputArray 类型的 dst,输出的运算结果,和源图像具有一样的尺寸和类