一种改进Harris算子的角点特征检测研究-含Matlab代码

✅ 一、引言

将图像中灰度变化剧烈或者在图像边界上曲率变化较大的点称为角点。角点检测对于工件图像的特征点定位有着重要作用,在进行工件的特征提取时,角点检测能够精确定位特征点,提高工件图像的特征提取精度。

角点是图像中的一个重要的局部特征,决定了图像中关键区域的形状,体现了图像中重要的特征信号,所以在目标识别、图像匹配、图像重构等方面都具有十分重要的意义。

在进行角点检测过程中,可能会受到噪声干扰以及图像灰度变化的影响,从而导致角点检测结果不准确。而Harris角点检测算法不仅可以有效地克服这些问题,而且计算量较少,实现简单,使得检测结果更加准确。

✅二、Harris角点检测算法

在Harris算法检测过程中,将图像I(x,y)在点(u,v)平移(x,y)产生的灰度变化函数表示为

在这里插入图片描述
式中:ω高斯函数。

函数E(x,y)值在高斯窗口内进行任意方向的移动时,若未产生任何变化或者有微小变化,则为非角点;当函数E(x,y)产生特别大或者特别小的变化时,则将该点定义为角点。

在点(u,v)处对函数E(x,y)进行一阶泰勒展开,则函数E(x,y)可改写成下式

在这里插入图片描述

其中,A,B,C 是二阶方向微分的近似,定义如下

在这里插入图片描述

其中,X,Y 分别表示在x和y两个方向上的一阶梯度值:

在这里插入图片描述

式中:h(x,y)高斯滤波。

将式(3)代入式(2),可得到下式

在这里插入图片描述

其中,M 为自相关矩阵,表示如下

在这里插入图片描述

计算自相关矩阵M特征值过程过于繁复,所以Harris算法使用角点响应函数进行角点质量判断,如

在这里插入图片描述

式中:Det(M)矩阵M行列式的值,Det(M)=AB-C^2;

k 常数系数;

Tr(M)矩阵M的迹,Tr(M)=A+B。

若提前设置的阈值小于等于某点的 R(x,y)值,该点则为角点。

Harris角点检测流程如图1所示。

在这里插入图片描述

图1 Harris角点检测流程图

1)获取齿轮工件原图的灰度图像,计算其在x 和y 方向上的梯度值X 和Y;

2)用高斯函数对工件灰度图进行滤波处理,并计算出自相关矩阵 M ;

3)将设定的阈值与计算得到的每个像素点的响应值进行比较,并判定该点是否为候选角点;

4)利用非极大值抑制对3)中所获得的候选角点进行处理,以确定最终的角点。

✅三、角点检测实验验证

在 MATLAB图像处理工具箱中提供的corner函数可以直接用来检测图像的Harris角点特征。下面对使用改进Harris函数和corner函数计算的结果进行对比,对比效果如图2所示。

在这里插入图片描述

图2 改进Harris算法与corner函数的角点检测对比

✅四、参考文献

[1]权威,黄华.多特征方向偏好轮廓提取算法[J].计算机辅助设计与图形学学报,2018,30(1):100-106.
[2]陈琛.刀具图像轮廓特征检测[D].西安:西安工业大学,2013.

✅五、Matlab代码获取

上述Matlab下载地址:

https://download.csdn.net/download/m0_70745318/87762272


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值