Harris角点检测原理
来源:互联网 发布:淘宝刷cf英雄级武器吗 编辑:程序博客网 时间:2024/06/01 09:21
本文转自:http://blog.csdn.net/next9pm/article/details/25345115
理论:
“如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,那么我们就把它称之为角点”
由上面定义,我们可以想到算法思路:去检测图像像素的灰度变化情况,即求解
,其中,I(x,y)表示像素的灰度值
对于上式,我们希望找到使E的值尽量大的点,则,将上式右边泰勒展开得:
整理可得:
,进而可以表示为下式
这里考虑进去窗函数,设
于是,Harris整理出Harris算子的公式:
,其中M即为上面的矩阵,但是为什么会有这个算子呢,我试着给一点解释。
让我们来重新来考虑矩阵,一切的问题还得回归到数学上去
,这个矩阵先摆在这里,我们先看一下协方差矩阵。
协方差矩阵的作用为什么比方差和均值要大呢?显而易见方差和均值只是一维随机变量的统计值,而协方差就不一样了,它可以表示多维随机变量之间的相关性信息。协方差矩阵的一个很出色的应用就是在PCA中,选择主方向。协方差矩阵的对角线的元素表示的是各个维度的方差,而非对角线上的元素表示的是各个维度之间的相关性,因此,在PCA中,我们尽量将非对角线上的元素化为0,即将矩阵对角化,选特征值较大的维度,去掉特征值较小的维度,来获得主方向,并且使主方向与其他方向的相关性尽量小。那现在看看这个矩阵M,通过上面对协方差的描述,我们完全可以把这个矩阵看做一个二维随机分布的协方差矩阵,那么我们要做的就是将其对角化,求矩阵的两个特征值,然后根据这两个特征值来判断是不是角点(两个特征值都大代表角点)。
而对于Harris算子来说,我们也可以写成下式的形式:
,单单从这个式子中我们无法与上面联系起来,上面是说要让两个特征值都大的点,而这个式子是要求使R最大的点,而也没有办法一眼看出R与两个特征值之间的单调性关系。
下面我只是去验证此式的正确性,至于它到底是根据什么构造的,我还不清楚,如果有人知道,请告诉我一下~~
我们这里设,进而可以设,所以,现在我们对求导,整理后可得下式:
,对于k值,我们一般取0.04~0.06,所以对于角点,导数是正的,且随着特征值的增大,导数呈上升的趋势。也就是说这个算子是符合上面的理论分析的。
像上面这样去求解原则上是没有问题的,可是,众所周知,原始的Harris角点检测算法不具有尺度不变性(也就是说如果图像的尺度发生变化,那么可能原来是角点的点在新的尺度就不是角点了)。
所以,我们在进行运算的开始先将图像转化到尺度空间表示,即将原图像进行尺度变换,而尺度变换的方式就是问题的输入信号与尺度核函数做卷积运算:
,其中这里的运算为卷积运算,不是乘运算。即
,其中sigma表示尺度。然后,我们就使用L代替原图像去进行运算,而尺度成了我们运算的参数了。
我们知道Harris角点本身就不受光照,旋转的影响,现在我们又使其满足尺度不变性,所以,Harris角点可以作为一个优秀的特征来帮助我们解决问题。
- harris角点检测原理
- Harris角点检测原理
- harris角点检测的数学原理
- Harris角点检测原理分析
- Harris角点检测原理及实现
- Harris角点检测原理分析
- Harris角点检测算法原理
- Harris角点检测原理与流程
- Harris角点检测原理详解
- Harris角点检测原理与流程
- Harris角点检测原理与流程
- Harris角点检测原理详解
- Harris 角点检测原理详解
- Harris角点检测原理详解
- Harris角点检测原理的理解
- Harris 角点检测算法原理
- Harris 角点检测
- Harris角点检测
- linux下获得所有主机通信的ip包
- 记录一下ES6扩展运算符(三点运算符)...的用法
- ns3之节点默认使用的路由协议
- qt各个版本直接下载地址
- AndroidStudio2.2-2.3安装不了anko-plugin的解决方式
- Harris角点检测原理
- 非负矩阵分解(NMF)
- SpingBoot之旅(一)——从一个简单的Demo入手
- CSS行高(line-height)及文本垂直居中原理
- Android将应用log信息保存文件
- 字符串处理技术之格式化字符串(格式化当前日期)
- 产品需求文档PRD的写作
- ProtoBuf3 简单案例(使用Any新Type代替protobuf2中的扩展)
- Hbase简介