实验原理
视差图计算
深度信息可以通过计算1幅图像和其它图像的特征位置的像素差获得。视差图和深度图很像,因为视差大的像素离摄像机近,而视差小的像素离摄像机远。按以米为单位来计算摄像机距物体多远需要额外的计算。
根据Matlab教程,计算视差图的标准方法是用简单的块匹配(Block Matching)。我们选择右边图像中的1块小区域,并在左边图像中搜索匹配最近的像素区域。同理,当搜索右边图像时,我们从和左边图像的模板相同的坐标处开始,向左和向右搜索至最大距离。视差为右边图像的小区域和左边图像的最近匹配区域的中心像素的水平距离。
左视差图:
右视差图:
归一化互相关
归一化相关性,normalization cross-correlation,因此简称NCC,下文中笔者将用NCC来代替这冗长的名称。
NCC,顾名思义,就是用于归一化待匹配目标之间的相关程度,注意这里比较的是原始像素。通过在待匹配像素位置p(px,py)构建3*3邻域匹配窗口,与目标像素位置p’(px+d,py)同样构建邻域匹配窗口的方式建立目标函数来对匹配窗口进行度量相关性,注意这里构建相关窗口的前提是两帧图像之间已经校正到水平位置,即光心处于同一水平线上,此时极线是水平的,否则匹配过程只能在倾斜的极线方向上完成,这将消耗更多的计算资源。
NCC计算公式如下图所示:
其中NCC(p,d) NCC(p,d)NCC(p,d)得到的值得范围将在[−1,1]之间 [-1,1]之间[−1,1]之间。
Wp为之前提到的匹配窗口。
1(x,y) 为原始图像的像素值。
I1(px,py) 为原始窗口内像素的均值。
I2(x+d,y)为原始图像在目标图像上对应点位置在x xx方向上偏移d dd后的像素值。
I2(px+d,py)为目标图像匹配窗口像素均值。
若NCC=−1