主要内容

reconstructScene

重建三维场景差异的地图

描述

例子

xyzPoints= reconstructScene (disparityMap,reprojectionMatrix)返回一个数组重建一个场景的三维世界坐标点差异的地图。三维世界坐标是相对于相机的光学中心1在音响系统。您可以使用rectifyStereoImages函数来获得reprojectionMatrix从一对立体影像。

例子

全部折叠

加载立体声参数。

负载(“webcamsSceneReconstruction.mat”);

读的立体图像。

I1 = imread (“sceneReconstructionLeft.jpg”);I2 = imread (“sceneReconstructionRight.jpg”);

纠正图像。

[j - 1, J2, reprojectionMatrix] = rectifyStereoImages (I1、I2 stereoParams);

整改后的图片显示。

图imshow(猫(j - 1 (:,: 1), J2 (:,: 2:3)),“InitialMagnification”,50);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

计算出差异。

disparityMap = disparitySGM (im2gray (j - 1), im2gray (J2));图imshow (disparityMap [0, 64),“InitialMagnification”,50);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

重建的三维世界坐标点对应于每个像素的差距地图。

xyzPoints = reconstructScene (disparityMap reprojectionMatrix);

细分出一个人位于3.2和3.7米之间远离相机。

Z = xyzPoints (:,:, 3);掩码= repmat (Z > 3200 & Z < 3700, (1, 1, 3));j - 1(~面具)= 0;imshow (j - 1,“InitialMagnification”,50);

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

输入参数

全部折叠

差距形象,指定为一个二维数组的差距值像素一对立体的图1。您可以使用disparityBMdisparitySGM函数来生成差异图像。

差异的图像可以包含标记为无效值。这些值对应像素图1与图2不匹配。相对应的函数集世界坐标无效的差异值

与世界零差异对应像素点太远来衡量,相机的分辨率。函数集世界坐标对应零差距

当你指定disparityMap输入作为一个,该函数返回的坐标。否则,该函数返回的坐标

数据类型:|

Reprojection矩阵,指定为一个4×4矩阵。您可以使用rectifyStereoImages函数来获得reprojectionMatrix从一对立体影像。

reprojection矩阵表示为:

( 1 0 0 c x 0 1 0 c y 0 0 0 f 0 0 1 / b 0 ]

在哪里f和[残雪,cy)纠正相机的焦距和主点1,分别。b是虚拟的基线修正立体相机。

数据类型:|

输出参数

全部折叠

世界的坐标点,作为一个返回——- - - - - -N3数组。三维世界坐标是相对于相机的光学中心1所代表的音响系统stereoParams

输出数组中包含了(x,y,z)世界的坐标点对应的像素disparityMap输入。xyzPoints(::1)包含了x世界坐标的点对应的像素差异映射。xyzPoints(::2)包含了y世界坐标,xyzPoints(::3)包含了z世界坐标。三维世界坐标是相对于相机的光学中心1的音响系统。

当你指定disparityMap输入函数的作用是:返回xyzPoints输出为。否则,函数返回它

数据类型:|

引用

[1]Bradski和a . Kaehler学习OpenCV: OpenCV的计算机视觉库塞瓦斯托波尔,CA: O ' reilly, 2008年。

扩展功能

版本历史

介绍了R2014a