Harris角点标注法

来源:互联网 发布:以下哪件商品淘宝禁售 编辑:程序博客网 时间:2024/06/05 20:33

在图像拼接过程中,图像的匹配是重要的一步,其中最常用的算法是Harris角点标注算法。
在Harris之前常用的是Moravec 角点提取算法,Moravec角点检测是一种基于灰度值的检测算法,主要是通过滑动二值矩形窗口寻找灰度变化的局部最大值。主要先通过事先设定一个经验阈值,通过对窗口(如取3*3的窗口)进行相邻八个方向(上,下,左,右,左上,左下,右上,右下)进行滑动,计算原窗口和滑动后窗口的灰度变化值的平方和,取这8个方向的差平方和的最小值与事先设定的阈值进行比较,如果大与事先的阈值就将该值作为该点的兴趣值,接着取如3*3,5*5的区域进行局部比较取局部的最大值,防止在一个区域内重复取角点。
取点情况如图:
这里写图片描述
算法公式:
vk=9i=1(AiBi)2
V=minvk,k=1,2......8
T(x,y)={10VthresholdV<threshold
其中k代表窗口滑动的方向,vk代表在k方向上灰度变化的平方和,V代表8个方向中vk的最小值,T(x,y)=1表示改点为角点,T(x,y)=0表示改点不为角点,再进行局部的检测防止重复取角点。
Moravec角点检测的缺点是:
1.不具备旋转不变性;
2.对图像的边界,顶点反应比较强烈。
Harris角点算法是在1988年ChriS Harris 和 Mike Stephens 提出 ,主要解决了Moravec角点检测不具备旋转不变性;
算法公式:
E(u,v)=x,yw(x,y){I(x+u,y+v)I(x,y)}2
将公式进行泰勒展开:
E(u,v)=x,yw(x,y){I(x,y)+uI(x,y)+vI(x,y)I(x,y)}2
其中
[Ixu+Iyv]2=[u,v][I2xIxIyIxIyI2y][uv]
可以得到
E(u,v)=[u,v]M[uv]
神奇地这边变成了2*2地矩阵~~~
M=x,yw(x,y)[I2xIxIyIxIyI2y]
这里写图片描述
再求出M的特征值A,B
R=det(M)k(trace(M))2
det(M)=AB
traceM=A+B
再将R与设定的阈值进行比较,然后进行局部的比较防止角点重复取值

0 0
原创粉丝点击