主要内容

重建科学

从差异图中重建3-D场景

描述

例子

XYZPOINTS.= ReconstrugeScene(disparitymap.斯特奥奥托姆返回一系列三维世界点坐标,该坐标从视差地图重建场景。这斯特奥奥托姆输入必须与用于纠正与视差图对应的立体图像相同的输入。

例子

全部收缩

加载立体声参数。

加载('webcamsscenereconstruction.mat');

阅读立体声对图像。

i1 = imread('scenereconstrigchtleft.jpg');i2 = imread('scenereconstructionsright.jpg');

纠正图像。

[J1,J2] = rectifyStereoImages(I1,I2,Stereoparams);

整流后显示图像。

图IMSHOW(CAT(3,J1(::,1),J2(::,2:3)),'InitialMagnification',50);

图包含轴。轴包含类型图像的对象。

计算差异。

dissaritymap = disparitysgm(im2gray(j1),im2gray(j2));图imshow(disparitymap,[0,64],'InitialMagnification',50);

图包含轴。轴包含类型图像的对象。

重建与视差图的每个像素对应的点的三维世界坐标。

XYZPOINTS = ReconstructScene(DisparityMap,Stereoparams);

将一个人距离距离相机3.2和3.7米之间。

Z = XYZPOINTS(::,3);面膜= Repmat(z> 3200&z <3700,[1,1,3]);J1(〜掩码)= 0;imshow(J1,'InitialMagnification',50);

图包含轴。轴包含类型图像的对象。

输入参数

全部收缩

视差图像,指定为立体对图像1中的像素的2-D差值阵列。你可以使用disparitybm.或者disparitysgm.用于生成视差图像的功能。

视差图像可以包含标记为的无效值。这些值对应于与图像2不匹配的图像1中的像素。该功能将对应于无效视差值的世界坐标设置为

考虑到相机的分辨率,赋予零视差的像素与零差距的差距相对应距离测量太远。该功能将对应于零视差的世界坐标设置INF.

当您指定时disparitymap.输入为A.双倍的,该函数返回坐标双倍的。否则,该函数将坐标返回为单身的

数据类型:单身的|双倍的

立体声相机系统参数,指定为a立体塔纳米仪目的。

数据类型:uint8.|uint16|int16|单身的|双倍的

输出参数

全部收缩

世界要点的坐标,作为一个返回m-经过-N-By-3阵列。3-D世界坐标相对于由此表示的立体声系统中的相机1的光学中心。斯特奥奥托姆

输出阵列包含[XyZ.]世界点的坐标,其对应于像素中的像素disparitymap.输入。XYZPOINTS.(:::1)包含X与视差图中的像素对应的世界坐标。XYZPOINTS.(::,:2)包含y世界坐标,和XYZPOINTS.(::3)包含Z.世界坐标。3-D世界坐标与立体声系统中的相机1的光学中心相对。

当您指定时disparitymap.输入为双倍的,函数返回XYZPOINTS.输出as.双倍的。否则,该函数将其返回单身的

数据类型:单身的|双倍的

参考

[1] G. Bradski和A. Kaehler,学习OpenCV:与OpenCV库的计算机愿景,塞巴斯托波尔,加利福尼亚州:O'Reilly,2008。

扩展能力

在R2014A介绍