文档

disparitySGM

通过半全局匹配计算视差图

描述

例子

disparityMap= disparitySGM (I1I2从一对校正立体图像计算视差图I1I2,采用半全局匹配(SGM)方法。要了解有关校正立体图像的更多信息,请参见形象整改

disparityMap= disparitySGM (I1I2名称,值使用一个或多个名称-值对参数指定选项。

例子

全部折叠

加载一个校正的立体对图像。

i = imread()“rectified_left.png”);I2 = imread“rectified_right.png”);

创建校正后的立体对图像的立体立体图形并显示。你可以用红青色立体眼镜观看3d图像。

A = stereoAnaglyph(I1,I2);图imshow(A)标题(校正立体对像的红-青复合视图

将校正后的输入彩色图像转换为灰度图像。

J1 = rgb2gray(I1);J2 = rgb2gray(I2);

通过半全局匹配计算视差图。指定视差范围为[0,48],唯一性最小值为20。

[0 48];(J1,J2,“DisparityRange”disparityRange,“UniquenessThreshold”, 20);

显示视差图。将显示范围设置为与视差范围相同的值。

图imshow(disparityMap,disparityRange) title(“差距地图”) colormap飞机colorbar

输入参数

全部折叠

输入图像参考如下I1对应于相机1,指定为二维灰度图像或agpuArray对象。该函数使用该图像作为计算视差图的参考图像。输入图像I1I2必须是实的、有限的和非稀疏的。同时,I1I2必须具有相同的大小和相同的数据类型。

数据类型:||int16|uint8|uint16

输入图像参考如下I2对应于相机2,指定为二维灰度图像或agpuArray对象。输入图像I1I2必须是实的、有限的和非稀疏的。I1I2必须具有相同的大小和相同的数据类型。

数据类型:||int16|uint8|uint16

名称-值对参数

指定可选的逗号分隔对名称,值参数。名字是参数名和吗价值是对应的值。名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数,如Name1, Value1,…,的家

例子:disparitySGM (I1、I2 DisparityRange, 64年[0])

视差范围,指定为由逗号分隔的对组成“DisparityRange”一个形式为[的双元素向量MinDisparityMaxDisparity].MinDisparity最小差距是和吗MaxDisparity是最大的差距。

用于输入宽度的图像N,MinDisparityMaxDisparity必须是(- ?NN)。两者之间的区别MaxDisparityMinDisparity这些值必须能被8整除,并且小于等于128。

视差范围的默认值为128年[0]。有关选择视差范围的详细信息,请参见选择视差范围

数据类型:整数

唯一的最小值,指定为由逗号分隔的对“UniquenessThreshold”一个非负整数。

该函数标记估计的视差值K对于不可靠的像素,如果:

v<V××(1 + 0.01UniquenessThreshold),

在哪里V汉明距离是否对应视差值Kv是整个视差范围内最小的汉明距离值,不包括KK1,K+ 1。

增加…的价值UniquenessThreshold导致更多像素的视差值被标记为不可靠。如果不使用唯一性阈值,请将该值设置为0。

输出参数

全部折叠

校正立体对图像的视差映射,返回为二维灰度图像或二维灰度图像gpuArray对象。该函数返回与输入图像大小相同的视差图I1I2。这个输出中的每个值都是指立体对图像中共轭像素之间的位移。有关计算视差映射的详细信息,请参见利用半全局匹配计算视差图

数据类型:

更多关于

全部折叠

形象整改

输入图像I1I2在计算视差图之前必须进行校正。校正保证了立体对图像中对应点在同一行上。校正输入的立体对图像rectifyStereoImages函数。为了校正和视差图计算,参考图像必须是相同的。

算法

全部折叠

选择视差范围

视差的范围必须选择覆盖的最小和最大数额的水平位移之间的相应像素的校正立体对图像。可以从立体对图像的立体象形确定近似的水平位移值。方法计算校正后图像的立体几何stereoAnaglyph函数。控件在图像查看器中显示立体立体图形imtool函数。若要测量立体对图像中对应点之间的水平位移量,请选择测量距离工具菜单中的图像查看器。根据此测量值为视差范围选择最小和最大视差值。

例如,该图显示了校正后的立体对图像的立体浮雕和在立体对图像中相应点之间测量的水平位移值。最小和最大位移值分别计算为8和31。根据这些值,可以选择视差范围为[0,48]。

利用半全局匹配计算视差图

  1. 计算校正后的立体对像的Census变换。

  2. 计算人口普查变换图像中像素间的汉明距离,得到匹配代价矩阵。

  3. 利用文中给出的半全局匹配方法,从匹配代价矩阵计算逐像素的视差[1]

  4. 可选地,将像素标记为不可靠UniquenessThreshold名称-值对。该函数将不可靠像素的视差值设置为

参考文献

赫施穆勒,H。“基于半全局匹配和互信息的精确高效立体处理”。在IEEE计算机视觉与模式识别(CVPR)会议论文集,第807-814页。San Diego, CA: IEEE, 2005。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

在R2019a中引入