1. Harris角点检测
角点检测被定义两条边的交点, 在实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点, 而不仅仅是角点。
角点: 如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,那么将其称之为角点。
角点的性质
一阶导数(即灰度的梯度)的局部最大所对应的像素点;
两条及两条以上边缘的交点;
图像中梯度值和梯度方向的变化速率都很高的点;
角点处的一阶导数最大, 二阶导数为0, 它指示了物体边缘变化不连续的方向;
角点检测算法
基于灰度图像的角点检测
基于梯度
基于模板
主要考虑像素领域点的灰度变化,常见的基于模板的角点检测算法有:Kitchen-Rosenfeld, Harris, KLT以及SUSAN角点检测。
基于模板梯度组合
基于二值图像的角点检测
基于轮廓曲线的角点检测
Harris角点检测: cornerHarris()函数
harris角点检测是一种直接基于灰度图像的角点提取算法,稳定性高,尤其对L型角点检测精度高。
cvtColor(srcimage, grayImage, COLOR_BGR2GRAY);
cornerHarris(grayImage, HarrImage, 2, 3, 0.01);
// 这里显示没有结果, 一片黑暗
//imshow("cornerHarris", HarrImage);
Mat harrisCorners;
threshold(HarrImage, harrisCorne