Harris角点检测原理的理解

来源:互联网 发布:数据库物理模型图 编辑:程序博客网 时间:2024/05/16 18:13

基础知识

本文不打算从头开始讲一遍harris角点检测的原理,因为网上已经能找到写的很好的资料了。本文主要内容是尝试用另一个角度来解释harris角点检测中特征值和特征向量,最后在回顾一下角点判别算子。

基础介绍推荐这篇博客:http://www.cnblogs.com/ronny/p/4009425.html?utm_source=tuicool&utm_medium=referral

疑问

原文中从下面公式直接跳到椭圆函数,觉得不是很好理解。

c(x,y;Δx,Δy)AΔx2+2CΔxΔy+BΔy2

一个圆心在原点的椭圆函数为

[Δx,Δy]M(x,y)[ΔxΔy]=1

这里直接让自相关函数值为1得到椭圆方程:
c(x,y;Δx,Δy)=1
然后讨论了椭圆的性质,把特征向量λ1 λ2和椭圆的长短轴联系在了一起。为什么这么联系?这么联系的内在逻辑是什么?并没有多说。

二次型函数和特征值

我想还是顺着公式向下一步步解释吧

c(Δx,Δy)=[Δx,Δy]M(x,y)[ΔxΔy]

这是个二次型函数的标准形式,来看一下二次型函数的形状:

这里写图片描述

左图为函数在三维空间上的分布,右图为轮廓图,椭圆为等高线。先来定性的看一下,在右图中短轴的方向为c(Δx,Δy)函数值变化最快的方向,长轴的方向为值变化最缓慢的方向。回到这个模型建立的初衷,作者是希望找到角点,角点的定义是窗口在各个方向上移动,两个窗口内像素差都较大。换句话说就是变化量最大值和最小值相近都较大。从图中可以得出结论c(Δx,Δy)变化最快的方向和最慢的方向正交且和等高线图中的椭圆轴方向相同。我们把变换率和长短轴联系在一起,下面再用数学方式解释一下并联系上特征值

对二次型求导得

dcdx=2Mx
在两个轴方向上,导数方向和向量方向相同
2Mx=kx
λ=k2,就得到了特征方程
Mx=λx

解出来的两个向量x1x2正是特征向量,结论:M的特征向量为长轴和短轴的方向,对应的特征值和梯度大小成正比

harris算子

通过上一段的分析,要找角点就是要找λ1λ2都大的像素点。作者巧妙的用下三式构造了角点算子,并避免了直接求特征值和特征向量。

R=detMα(traceM)2

detM=λ1λ2=ACB2

traceM=λ2+λ2=A+C

R代表了该点为角点的可能性,R越大则越有可能为角点。
重点内容

参考

海森矩阵以及在图像中的应用 http://blog.csdn.net/lwzkiller/article/details/55050275
椭圆株洲和特征向量 http://blog.sina.com.cn/s/blog_4513dde60101bvwb.html

原创粉丝点击