文档帮助中心文档
从视差图重建三维场景
xyzPoints = reconstructScene (disparityMap stereoParams)
例子
xyzPoints= reconstructScene (disparityMap,stereoParams)返回一个3-D世界点坐标数组,从视差图重建一个场景。的stereoParams输入必须与用于校正视差图对应的立体图像的输入相同。
xyzPoints= reconstructScene (disparityMap,stereoParams)
xyzPoints
disparityMap
stereoParams
全部折叠
加载立体声参数。
负载(“webcamsSceneReconstruction.mat”);
读立体图像对。
I1 = imread (“sceneReconstructionLeft.jpg”);I2 = imread (“sceneReconstructionRight.jpg”);
纠正图像。
[J1, J2] = rectifyStereoImages(I1,I2, stereparams);
显示校正后的图像。
图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 stereoParams);
将一个距离摄像机3.2到3.7米的人分开。
Z = xyzPoints (:,:, 3);掩码= repmat(Z > 3200 & Z < 3700,[1,1,3]);j - 1(~面具)= 0;imshow (j - 1,“InitialMagnification”, 50);
视差图像,指定为立体对图像1中像素的视差值的二维数组。你可以使用任何一种disparityBM或disparitySGM函数来生成视差图像。
disparityBM
disparitySGM
视差图像可以包含标记为的无效值南.这些值对应于图1中与图2不匹配的像素。该函数将无效视差值对应的世界坐标设置为南.
南
基于相机的分辨率,零视差的像素对应的是距离太远而无法测量的世界点。该函数将对应于零视差的世界坐标设置为正.
正
当您指定disparityMap输入作为一个双,函数返回坐标为双.否则,函数将坐标返回为单.
双
单
数据类型:单|双
stereoParameters
立体摄像系统参数,指定为stereoParameters对象。
数据类型:uint8|uint16|int16|单|双
uint8
uint16
int16
世界点的坐标,返回为米——- - - - - -N3数组。三维世界坐标是相对于相机1的光学中心表示的立体系统stereoParams.
输出数组包含[x,y,z中的像素对应的世界点坐标disparityMap输入。xyzPoints(:,:, 1)包含x视差图中像素对应点的世界坐标。xyzPoints(:,:, 2)包含y世界坐标,xyzPoints(:,:, 3)包含z世界坐标。三维世界坐标相对于立体系统中1号相机的光学中心。
当您指定disparityMap输入双,函数返回xyzPoints输出为双.否则,函数将其返回为单.
Bradski和Kaehler,学习OpenCV:计算机视觉与OpenCV库,塞瓦斯托波尔,CA: O'Reilly, 2008。
用法说明和限制:
使用在一个MATLAB函数块不受支持。万博1manbetx
estimateCameraParameters
lineToBorderPoints
rectifyStereoImages
大小
cameraParameters
您有这个示例的一个修改版本。要用编辑打开这个例子吗?
您点击了一个对应于这个MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站来获得可用的翻译内容,并看到当地的活动和提供。根据您所在的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
请选择表现最佳的中国网站(中文或英文)。MathWorks的其他国家网站并没有针对您所在位置的访问进行优化。
与当地办事处联系