图像局部描述符
一、 Harris角点检测
1.1什么是角点
在学习Harris角点检测算法之前,我们先要明确说明是角点。从图像分析的角度来定义角点可以有以下两种定义:
角点可以是两个边缘的角点;
角点是邻域内具有两个主方向的特征点;
在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。

所以我们可以直观的概括下角点所具有的特征:
-
轮廓之间的交点;
-
对于同一场景,即使视角发生变化,通常具备稳定性质的特征;
-
该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;
对于前一种定义来说,往往需要对图像边缘进行编码,这在很大程度上依赖于图像的分割与边缘提取,具有相当大的难度和计算量,且一旦待检测目标局部发生变化,很可能导致操作的失败。
基于图像灰度的方法通过计算点的曲率及梯度来检测角点,避免了第一类方法存在的缺陷,此类方法主要有Moravec算子、Forstner算子、Harris算子、SUSAN算子等。
1.2 harris角点检测思想原理
其基本思想是通过局部的小窗口观察图像特征

所以接下来的测试会根据这三方面展开。
Harris算法的数学表达是:




而我们如何通过λ1和λ2的结果来判断角点呢,这边接下来要引入关于响应函数R的定义,这里代为补充。
1.3 响应函数R
1.4 harris角点检测
而harris角点检测算法是最简单的角点检测方法之一。
那Harris算法到底算不算是一个好的算法,我们需要通过下面几点来判断。

接下来我将对Harris算法进行测试。
Harris角点检测流程:
- 通过高斯函数的导数对原始图像进行卷积计算;图像在水平方向和垂直方向的导数Ix和Iy;
- 计算对应这些梯度外积即(Ix2 、Iy2、IxIy)三个图像如下图:
- 使用高斯函数对以上图像进行卷积滤波;
- 使用前面的公式计算角点响应函数R值;
- 对计算到的角点图像进行局部极大值抑制。
以下代码是有关于python中的使用,通过对所获取到的一张图片作角点检测。
from pylab import

本文详细介绍了Harris角点检测算法,包括角点定义、检测思想、响应函数以及检测流程。通过Python实现展示了不同阈值下角点检测的数量变化,并分析了算法在图像匹配、尺度变换、光照条件下的表现。Harris角点检测在边缘多的场景和角点丰富的图像中表现出中等的识别效果,而在平坦场景中表现优秀,但对尺度变换敏感,存在误匹配问题。
最低0.47元/天 解锁文章
715

被折叠的 条评论
为什么被折叠?



