主要内容

rectifyStereoImages

纠正一对立体图像

描述

例子

[j - 1J2) = rectifyStereoImages (I1I2斯特雷托姆的)的未扭曲和纠正版本I1I2输入图像使用立体参数存储在斯特雷托姆对象。

立体图像校正将图像投影到一个公共的图像平面上,使相应的点具有相同的行坐标。这种图像投影使图像看起来好像两个摄像机是平行的。使用disparitybm.disparitysgm.函数从纠正的图像计算视差图,用于3-D场景重建。

[j - 1J2) = rectifyStereoImages (I1I2tform1.tform2.的)返回纠正版本的I1I2通过应用投影变换输入图像tform1.tform2..投影转换由返回estissuncalibratedrecification.功能。

例子

[j - 1J2) = rectifyStereoImages (___interp.的)另外指定用于整流图像的插值方法。您可以指定该方法“最近的”'线性', 或者“立方”

例子

[j - 1J2) = rectifyStereoImages (___名称,价值的)使用一个或多个指定的附加选项名称,价值对参数。

例子

全部折叠

指定包含校准的棋盘的图像。

imageDir = fullfile (toolboxdir ('想象'),'VisionData'......'校准'“立体”);leffimages = imagedataStore(fullfile(imagedir,“左”));Rightimages = ImageageAtastore(fullfile(imagedir,“对”));

检测棋盘。

[imagePoints, boardSize] = detectCheckerboardPoints (......leftimages.files,trainimages.files);

指定Checkerboard Keypoints的世界坐标。

squareSizeInMillimeters = 108;worldPoints = generateCheckerboardPoints (boardSize squareSizeInMillimeters);

阅读图像中。

I1 = ReadImage(左幅,1);I2 = ReadImage(RightImages,1);图像zize = [size(i1,1),size(i1,2)];

校准立体摄像系统。

stereoParams = estimateCameraParameters (imagePoints worldPoints,......“图象尺寸”,图片尺寸);

使用“完整”输出视图纠正图像。

[J1_full, J2_full] = rectifyStereoImages (I1、I2 stereoParams,......“OutputView”“全部”);

显示'full'输出视图的结果。

图;imshow(立体式(J1_FULL,J2_FULL)));

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

使用“有效”输出视图纠正图像。这最适合计算差异。

[J1_VALID,J2_VALID] = rectifyStereoImages(I1,I2,Stereoparams,......“OutputView”“有效”);

显示“有效”输出视图的结果。

图;imshow (stereoAnaglyph (J1_valid J2_valid));

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

输入参数

全部折叠

输入图像对应于相机1,指定为一个M.——- - - - - -N.- × 3的真彩色图像或M.——- - - - - -N.2-D灰度阵列。输入图像I1I2还必须是真实的,有限的和不公正。输入图像必须是相同的类。

数据类型:uint8.|uint16|int16|单身的||逻辑

输入图像对应于摄像头2,指定为M.——- - - - - -N.- × 3的真彩色图像或M.——- - - - - -N.2-D灰度阵列。输入图像I1I2必须是真实的,有限的和非问题。输入图像也必须是相同的类。

数据类型:uint8.|uint16|int16|单身的||逻辑

立体声相机系统参数,指定为astereoParameters对象。

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

图像1的投影变换,指定为3×3矩阵返回estissuncalibratedrecification.功能或A.projective2d对象。

图2的投影变换,指定为返回的3 × 3矩阵estissuncalibratedrecification.功能或A.projective2d对象。

插值方法,指定为'线性'“最近的”, 或者“立方”

名称 - 值参数

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

例子:“OutputView”“有效”设置“OutputView”财产“有效”

整个纠正的图像的大小,指定为逗号分隔的配对组成OutputView'还是“全部”“有效”.当设置为时“全部”,整流图像包括来自原始图像的所有像素。当您将此值设置为“有效”,输出图像裁剪为包含有效像素的最大公共矩形的大小。

当校正后的图像之间没有重叠时,设置OutputView“全部”

输出像素填充值,指定为逗号分隔对,由'填充'以及一个或多个标量值的数组。当输入图像中的相应逆变换位置完全在输入图像边界之外时,请使用输出像素的填充值。如果I1I2是2-D灰度图像,然后你必须设置'填充'变成一个标量。如果I1I2是TrueColor图像,那么你可以设置'填充'到标量或RGB值的3个元素矢量。

输出参数

全部折叠

未置换和纠正的版本I1,返回为M.——- - - - - -N.-by-3真彩图像或作为M.——- - - - - -N.二维灰度图像。

立体图像校正将图像投影到一个公共的图像平面上,使相应的点具有相同的行坐标。这种图像投影使图像看起来好像两个摄像机是平行的。使用disparitybm.disparitysgm.函数从纠正的图像计算视差图,用于3-D场景重建。

未置换和纠正的版本I2,返回为M.——- - - - - -N.-by-3真彩图像或作为M.——- - - - - -N.二维灰度图像。

立体图像校正将图像投影到一个公共的图像平面上,使相应的点具有相同的行坐标。这种图像投影使图像看起来好像两个摄像机是平行的。使用disparitybm.disparitysgm.函数从纠正的图像计算视差图,用于3-D场景重建。

提示

  • 计算机Vision Toolbox™整流算法要求每个图像的eBipole位于图像之外。如果eBipole位于图像内,则可以首先将图像转换为极性坐标,如Marc Pollefeys,Reinhard Koch和Luc Van Gool所提出的整流方法中所述[2]

参考文献

[1] G. Bradski和A. Kaehler,学习OpenCV:与OpenCV库的计算机愿景.加州塞瓦斯托波尔:奥莱利,2008。

扩展能力

介绍了R2014a