Harris角点特征及C实现

1、Harris角点

Harris角点检测是特征点检测的基础,该检测子对平移和旋转鲁棒。
Harris角点具有两个非常重要的性质:
《1》、具有很大的梯度幅值;
《2》、在很小的近邻内,梯度方向变化尖锐;
故可以通过窗口在小区域内滑动来确定角点位置。

直观的角点理解:角点既是图像中物体轮廓的连接点,见下图所示。当拍摄视角变化时这些特征点能很好的保持稳定特性。
Harris角点特征及C实现_第1张图片

2、检测原理及推导

Harris角点特征及C实现_第2张图片

Harris角点特征及C实现_第3张图片
(因为网上找原理很方便,所以就不打算把公式在博客再写一遍,直接由大神博客截图过来的)

编程时用x1,x2不方便,因此定义角点响应函数;
             R=det(M)−k(trace(M))^2 (一般的0.04 <= k <=0.06)
其中det(M)为矩阵M的行列式,trace(M)为矩阵M的迹。

3、算法步骤

1、sobel算子计算出XY方向梯度;
2、计算各个方向的梯度幅值(Ix*Ix, Ix*Iy)及XY方向的梯度乘(Ix*Iy);
3、用高斯滤波对步骤2得到的3张图进行滤波;
4、计算局部特征结果矩阵M的特征值和响应函数R=det(M)−k(trace(M))^2
5、对步骤4得到的响应图进行非极大值抑制,同时设置阈值进一步筛选好的角点;

4、输出


中间是非极大值抑制后的输出(角点的3x3范围内填充黑色–图中黑点),右边的是角点响应进行非极大值抑制之前输出的二值图。

5、demo

6、参考

https://blog.csdn.net/xunalove/article/details/78066020
https://download.csdn.net/download/u014600742/7171437
https://blog.csdn.net/linqianbi/article/details/78930239
https://blog.csdn.net/woxincd/article/details/60754658

你可能感兴趣的:(图像处理)