Harris角点检测——python实现

本文详细介绍了Harris角点检测的原理,包括角点的定义、数学表达式,以及如何通过特征值分析确定角点。通过实验分析了在不同场景下(边缘多、角点丰富、纹理平坦)角点检测的效果,总结出该算法对亮度敏感,具有旋转不变性,但不具尺度不变性。同时,文章提及在实际应用中遇到的问题和解决办法,并预告了Harris特征匹配的内容。
摘要由CSDN通过智能技术生成

一.Harris角点检测

1.实验原理

1.1什么是角点

角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点。而对于图像而言,如图所示红点部分,即为图像的角点,其是物体轮廓线的连接点。
因此,在角点时,窗口向任意方向的移动都导致图像灰度的明显变化。
在这里插入图片描述

1.2数学表达

假设图像像素点(x,y)的灰度为 I(x,y),以像素点为中心的窗口沿 x 和 y 方向分别移动 u 和 v 的灰度强度变化的表达式为:
在这里插入图片描述
其中 E(u,v)是灰度变化,w(x,y) 是窗口函数,一般是高斯函数,所以可以把w(x,y)看做是高斯滤波器。I(x,y)是图像灰度, I(x+u,y+v)是平移后的图像灰度。
收到泰勒公式的启发,在这里我们可以将 I(x+u,y+v)函数在(x,y)处泰勒展开,为了提高抗干扰的能力并且简化运算,我们取到了一阶导数部分,后面的无穷小量可以忽略,整理得到表达式如下:
在这里插入图片描述
将[ Ixu+Iyv ]展开后整理可以用矩阵表达为:
在这里插入图片描述

最后我们可以近似得到E(x,y)的表达式,将其化为二次型后得到:
在这里插入图片描述
其中M是一个2X2的矩阵,称为像素点的自相关矩阵,可以由图像的导数求得。M=窗口函数*偏导矩阵,表达式为:
在这里插入图片描述

因为u,v是局部微小的移动变量,所以我们对M进行讨论,M是一个2X2的矩阵,M的表达式中与点的位置(x,y)具体强相关性,记M得特征值为λ1,λ2,关于特征值的意义太过抽象,这里就不展开,但是我们可以简单理解为该点的灰度值变化速度,那么a1和a2可以分别看做是x方向和y方向的灰度变化速率,就可以用a1,a2两者的大小关系来进行分类。
当两个特征值λ1和λ2都偏小的时候,表示窗口沿任意方向移动都会使灰度变化很细微,该点处于图像的平坦区域。
当λ1>>λ2或者λ1<<λ2时,说明该点向水平(垂直)方向移动时变化会很明显,而向垂直(水平)方向则变化不明显,该点处于图像的边缘区。
当两个特征值λ1和λ2都很大的时候,表示窗口沿任意方向移动都会使灰度变化很明显,该点位置就是图像角点的位置。
在这里插入图片描述

然而在实际中,经常使用的是角点响应函数CRF这一概念,以此更加准确的计算所需角点,方法如下:

在这里插入图片描述
det M是矩阵M的行列式,Trace(M)为矩阵M的迹。k为修正值,是一个常数,经验取值为0.04-0.06。算出响应值之后,根据R与阈值T的比较来判断是否为角点。

当|R|很小时,R<T , 认为该点处于图像的平坦区域。
当R<0时,R<T , 认为该点处于图像的边缘区。
当R>0时,R>T, 认为该点位置就是图像角点。

在这里插入图片描述

2.实验代码

compute_harris_response():在一幅灰度图像中,对每个像素计算harris角点检测器响应函数,返回像数值为Harris响应值的一幅图像
get_harris_points():从一幅harris响应图像中返回角点

# -*- coding: utf-8 -*-
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris

"""
Example of detecting Harris corner points (Figure 2-1 in the book).
"""

# 读入图像
im = array(Image.open(r'C:\Python\Pictrue\group5_5.jpg').convert('L'))

# 检测harris角点

harrisim = harris.compute_harris_response(im)

#
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值