Hariss 角点检测算法

本文详细介绍了Harris角点检测算法,包括其基础知识、原理、数学表达和OpenCV函数应用。通过实验展示了算法在不同图像类型上的表现,分析了问题并提出解决方案。实验表明,Harris算法在角点丰富图像上效果稳定,但在复杂图像中可能产生重复或误检角点,需要调整参数以适应不同图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Hariss 角点检测算法
1.Hariss 角点检测算法基础知识
特征点检测广泛应用到目标匹配、目标跟踪、三维重建等应用中,在进行目标建模时会对图像进行目标特征的提取,常用的有颜色、角点、特征点、轮廓、纹理等特征。现在开始讲解常用的特征点检测,其中Harris角点检测是特征点检测的基础,提出了应用邻近像素点灰度差值概念,从而进行判断是否为角点、边缘、平滑区域。Harris角点检测原理是利用移动的窗口在图像中计算灰度变化值,其中关键流程包括转化为灰度图像、计算差分图像、高斯平滑、计算局部极值、确认角点。
2.Hariss 角点检测算法原理
角点原理来源于人对角点的感性判断,即图像在各个方向灰度有明显变化。算法的核心是利用局部窗口在图像上进行移动判断灰度发生较大的变化。如果窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。
3.Hariss 角点检测算法数学表达

对于角点的检测,harris依据一下直观判断:角点应该在窗口的各个方向都有变化,而边界会在某个方向基本不变,而平坦区域在各个方向变化都小。因此我们要衡量在某个方向上的变化大小,定义
在这里插入图片描述 其中,w(x,y)是窗口函数;向量[u, v]表示某个方向,以及在该方向上的位移。由以上公式可知,E(u,v)表示在某个方向上图像灰度的变化。我们首先要研究在那个方向上,灰度变化最大(即令E(u,v)最大)。求解这个问题,我们通过泰勒展开公式二元公式为:
在这里插入图片描述 在这里插入图片描述记上式最后的结果为▲,则我们可以得到:
在这里插入图片描述
这时我们知道找两个特征值中较大的对应的特征方向就是变化较大的方向。
直观上考虑:
在这里插入图片描述 都小:区域平坦
在这里插入图片描述边界
在这里插入图片描述且都大:角点
基于以上原理,我们定义:

R小,说明两个特征值都小,对应区域平坦;

R<0,说明,对应边界;

R大,说明且都大,对应角点。

所以可以用R>阈值作为条件判断是否是角点。
4.Hariss 角点检测算法相关opencv函数解释
关键命令是:cv2.cornerHarris(src, blocksize, ksize, k [, dst [, borderType ]]) -> dst

参数如下:

ksize:Sobel的孔径参数(aperture parameter),也就是Sobel核的半径,如1、3、5、7

k:R公式中的k,默认取0.04

blocksize:窗口大小,以下实验中取2

二、实验部分
1)对纹理平坦的图像做角点检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值