python计算机视觉编程——关于Harris角点检测方法的运用

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

图像局部描述符

一、 Harris角点检测

1.1什么是角点

在学习Harris角点检测算法之前,我们先要明确说明是角点。从图像分析的角度来定义角点可以有以下两种定义:

角点可以是两个边缘的角点;
角点是邻域内具有两个主方向的特征点;

在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。
在这里插入图片描述

所以我们可以直观的概括下角点所具有的特征:

  1. 轮廓之间的交点;

  2. 对于同一场景,即使视角发生变化,通常具备稳定性质的特征;

  3. 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;

    对于前一种定义来说,往往需要对图像边缘进行编码,这在很大程度上依赖于图像的分割与边缘提取,具有相当大的难度和计算量,且一旦待检测目标局部发生变化,很可能导致操作的失败。
    基于图像灰度的方法通过计算点的曲率及梯度来检测角点,避免了第一类方法存在的缺陷,此类方法主要有Moravec算子、Forstner算子、Harris算子、SUSAN算子等。

1.2 harris角点检测思想原理

其基本思想是通过局部的小窗口观察图像特征
在这里插入图片描述
所以接下来的测试会根据这三方面展开。
Harris算法的数学表达是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

而我们如何通过λ1和λ2的结果来判断角点呢,这边接下来要引入关于响应函数R的定义,这里代为补充。

1.3 响应函数R

1.4 harris角点检测

而harris角点检测算法是最简单的角点检测方法之一。

那Harris算法到底算不算是一个好的算法,我们需要通过下面几点来判断。
在这里插入图片描述
接下来我将对Harris算法进行测试。
Harris角点检测流程:

  1. 通过高斯函数的导数对原始图像进行卷积计算;图像在水平方向和垂直方向的导数Ix和Iy;
  2. 计算对应这些梯度外积即(Ix2 、Iy2、IxIy)三个图像如下图:
  3. 使用高斯函数对以上图像进行卷积滤波;
  4. 使用前面的公式计算角点响应函数R值;
  5. 对计算到的角点图像进行局部极大值抑制。

以下代码是有关于python中的使用,通过对所获取到的一张图片作角点检测。

from pylab import 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值