吴玲 朱宝忠
摘 要:文章结合特征点提取经典的Harris算子与Forstner算子,给出了Harris的改进算法;结合特征点的双向匹配算法,对基于区域的匹配算法有所改进,依据归一化互相关算法(NCC)计算相关灰度值来判断是否互为匹配点。
关键词:特征提取;特征点;匹配算法;灰度值
中图分类号:TP391.41 文献标识码:A 文章编号:1006-8937(2015)24-0083-02
1 特征提取
特征提取的目的是为了获取立体匹配时的图像特征,这些特征有点、线和区域等,这些提取特征的准确性对图像匹配的成功性有着直接的影响,因此,特征提取也是不容忽视的一个阶段。本文基于Harris算子简单、均匀及稳定的优势,考虑其只能定位单个像素的不足,结合Forstner算子对其作了一些改进。
2 Harris算子
2.1 Harris算子方法
Harris算子是一类典型的基于点特征的提取算子,它是由C.Harris和M.Stephens提出的为了简化运算,用一阶导数近似取代二阶导数的一种算法,而且提取到的特征点其准确性较高。图像的角点在水平和垂直方向上的导数值比较大,如果某一点是角点,则当该点向任意方向仅有一点点很小的偏移,都会引起图像灰度很大的变化。
2.2 Harris算子理念
Harris算子的理念是给出自相关矩阵,矩阵的特征值是通过计算图像像素点的相关函数的曲率构成,两个曲率都比较大的像素点则为角点。Harris算子的运算只用到灰度图像的一阶导数,因此该算子较简单且稳定。
3 Forstner算子
Forstner算子的基本思想是:选取图像上大小的窗口,并用Roberts算子对其进行滤波处理,确定最佳窗口并在包含每个像元的(影像单元,是数字化影像的最小组成单元)最佳窗口内加权中心化操作,从而确定特征点的坐标。Forstner算子的计算公式为:
Q=N-1=
(1)
其中,、为选定的大小的图像窗口中每个像素点的Roberts梯度值。通过每个窗口的兴趣值q、w,分别对应选定阈值T9(0.5~0.75)与Tw((0.5~1.5)x,其中,—为w的平均值,若某像
元同时满足-两个条件时,则该像元确定为特征点。
4 Harris算子的改进算法
结合这两种算法的优点,克服其不足,对Harris算法进行改进,以提高提取点特征的最终效果,以便后期更成功地实现匹配。改进的具体思想为:由于Harris算子的运算只涉及一阶导数,不涉及阈值,首先,用其提取出一些特征点,可见这些特征点可以反映局部区域内最优特征,每个特征点都是一个像素点;然后,用提取出来的特征点来更加快速地确定Forstner的最佳窗口,用其作为最佳窗口的中心点,再在窗口实施加权中心化,以进一步提高特征点的精度,更加精确地给出特征点的坐标。
5 改进的双向匹配算法
在匹配过程中,采用归一化互相关函数(NCC,Normalized Cross-Correlation)来描述窗口间的像素灰度相似性。设定(u,v)为图像中某一点的像素坐标,该像素点在左、右图像中的灰度值分别为I1(u,v)和I2(u,v),所选择灰度分布窗口的模板大小为M(m×n),d表示视差,即待匹配点P1与P2在I1可能匹配点P1之间的间距,则有:
NCC(u,v,d)=
× (2)
[图1 匹配的原图像对]
在这里归一化互相关函数是用来比较两个窗口像素灰度的相似性,其NCC值越接近于1,则表示这两个窗口就越相似,求相似性的目的是最终实现匹配。
6 匹配实验及结果
实验的具体过程为:首先采用改进的Harris算法对图像对的同一区域提取特征点,然后再利用改进的双向匹配算法对该区域进行立体匹配。首先设定5×5的窗口,结合外极线约束条件,沿着水平方向在右侧区域进行搜索,采用归一化互相关算法NCC来计算每个对应窗口灰度相关值,根据双向匹配算法的原理,找到灰度值最大的特征点作为匹配点,直至区域的最后一个特征点,以实现最终匹配。匹配的原图像对如图1所示,匹配最终得到的深度图,如图2所示。