Harris算子理论上来说是Moravec算子的改进,不过实际在求解过程中与Moravec算子的算法有很大不同。首先是使用高斯滤波,对整幅图像进行处处理,以达到降噪的目的。由于Matlab中可以很容易地实现滤波操作,因此在对一阶梯度进行求解时,可以使用[-1 0 1]和[-1 0 1]T的滤波核对整幅图像进行滤波处理,得到的即是一阶梯度的数据。之后根据得到的一阶梯度,求解图像的自相关矩阵M,通过自相关矩阵M的迹和行列式的值,计算响应因子R,从而根据响应因子R来判定其是否为角点。
具体步骤:
1、对整幅图像做高斯滤波进行降噪
2、使用-1 0 1]和[-1 0 1]T作为滤波核,分别求出图像的水平和竖直方向的一阶梯度。
3、基于上一步的梯度结果,计算自相关矩阵M,进而计算响应因子R
4、设定阈值,此处选择阈值T=40000
5、进行抑制局部非最大操作,将符合条件的点显示在图像上。