主要内容

rectifyStereoImages

纠正对立体图像

描述

例子

(j - 1,J2,reprojectionMatrix)= rectifyStereoImages (I1,I2,stereoParams)undistorts和调整的版本I1I2输入图像使用的立体参数存储在立体相机系统stereoParams对象。使用reconstructScene函数与reprojectionMatrixreproject二维点的差异映射到一个3 d点纠正相机相机1的坐标系统。

立体形象整改项目图片到一个通用的图像平面的方式对应的坐标点有相同的行。这幅图像投影使图像看起来好像两个摄像头是平行的。使用disparityBMdisparitySGM函数来计算视差地图纠正图像的三维场景重建。

(___,camMatrix1,camMatrix2,R1,R2)= rectifyStereoImages (I1,I2,stereoParams)返回3×4摄像机投影矩阵camMatrix1camMatrix2纠正相机,和相应的整改旋转矩阵,R1R2

(j - 1,J2)= rectifyStereoImages (I1,I2,tform1,tform2)返回的修正版本I1I2输入图像通过应用射影变换tform1tform2

例子

(j - 1,J2)= rectifyStereoImages (___,插值函数)另外指定了用于纠正图像插值方法。你可以指定方法“最近的”,“线性”,或“立方”

例子

(j - 1,J2)= rectifyStereoImages (___,名称=值)指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,OutputView = "有效"设置OutputView参数“有效的”

例子

全部折叠

指定图像包含棋盘校准。

imageDir = fullfile (toolboxdir (“愿景”),“visiondata”,“校准”,“立体”);leftImages = imageDatastore (fullfile (imageDir“左”));rightImages = imageDatastore (fullfile (imageDir“对”));

检测棋盘格。

[imagePoints, boardSize] = detectCheckerboardPoints (leftImages.Files rightImages.Files);

指定棋盘要点的世界坐标。

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

读取图像。

I1 = readimage (leftImages, 1);I2 = readimage (rightImages, 1);图象尺寸= [(I1, 1),大小(I1, 2)];

校准立体相机系统。

stereoParams = estimateCameraParameters (imagePoints worldPoints,图象尺寸=图象尺寸);

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

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

显示结果为“全部”输出视图。

图;imshow (stereoAnaglyph (J1_full J2_full));

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

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

[J1_valid, J2_valid] = rectifyStereoImages (I1、I2 stereoParams OutputView =“有效”);

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

图;imshow (stereoAnaglyph (J1_valid J2_valid));

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

输入参数

全部折叠

输入图像对应的相机1,指定为一个——- - - - - -N3真彩图像或一个——- - - - - -N二维灰度阵列。输入的图像I1I2也必须是真实的,有限的,和nonsparse。输入图像必须是同一个班。

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

输入图像对应于相机2,指定为一个——- - - - - -N3真彩图像或一个——- - - - - -N二维灰度阵列。输入的图像I1I2必须是真实的,有限的,和nonsparse。输入图像必须是相同的类。

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

立体相机系统参数,指定为一个stereoParameters对象。

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

射影变换的图像1,指定为一个projtform2d对象。你可以得到一个projtform2d对象使用estimateStereoRectification函数。

数据类型:|

射影变换的图像2,指定为一个projtform2d对象。你可以得到一个projtform2d对象使用estimateStereoRectification函数。

数据类型:|

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

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:OutputView = "有效"设置OutputView参数“有效的”

纠正图像的大小,指定为“全部”“有效的”。当你设定这个参数“全部”,纠正图像包含所有像素从原始图像。当你将这个值设置为“有效的”,输出图像剪裁最大的大小共同矩形包含有效像素。

之间没有重叠时纠正图像集OutputView“全部”

输出像素填值,指定为数值标量或三元素数值向量。当输入图像中的相应inverse-transformed位置完全在输入图像边界之外,使用填充输出像素值。如果I1I2二维灰度图像,那么你必须准备好了吗FillValues数字标量。如果I1I2真彩图像,那么你可以设置吗FillValues一个标量或三元素向量的RGB值。

输出参数

全部折叠

无畸变的修正版I1,作为一个返回——- - - - - -N3真彩图像或作为——- - - - - -N二维灰度图像。

立体形象整改项目图片到一个通用的图像平面的方式对应的坐标点有相同的行。这幅图像投影使图像看起来好像两个摄像头是平行的。使用disparityBMdisparitySGM函数来计算视差地图纠正图像的三维场景重建。

无畸变的修正版I2,作为一个返回——- - - - - -N3真彩图像或作为——- - - - - -N二维灰度图像。

立体形象整改项目图片到一个通用的图像平面的方式对应的坐标点有相同的行。这幅图像投影使图像看起来好像两个摄像头是平行的。使用disparityBMdisparitySGM函数来计算视差地图纠正图像的三维场景重建。

Reprojection矩阵,作为一个4×4返回矩阵的形式:

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

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

使用reconstructScene函数与reprojectionMatrixreproject二维点的差异映射到一个3 d点纠正相机相机1的坐标系统。

纠正相机一个投影矩阵,作为3×4返回矩阵。使用camMatrix1camMatrix2项目3 d世界点在摄像机坐标系到图像平面j - 1J2,分别。

使用camMatrix1项目3 d世界点纠正相机坐标系到图像平面j - 1

数据类型:|

相机两个修正投影矩阵,作为3×4返回矩阵。使用camMatrix1camMatrix2项目3 d世界点在摄像机坐标系到图像平面j - 1J2,分别。

使用camMatrix2项目3 d世界点纠正相机两坐标系到图像平面J2

数据类型:|

相机一个旋转矩阵与相机一个修正投影,返回为一个3×3的矩阵。的R1从unrectified相机旋转矩阵与3 d点一个点的坐标系统纠正相机一个坐标系统。

数据类型:|

相机两个相机旋转矩阵与一个修正投影,返回为一个3×3的矩阵。的R2旋转矩阵与3 d点unrectified相机两个坐标系的点纠正相机两坐标系统。

数据类型:|

提示

  • 计算机视觉工具箱™矫正算法要求每个图像的核点之外的形象。如果核点在图像,你可以首先将图像转换为极坐标描述精馏方法提出的马克•Pollefeys Reinhard科赫,吕克·范干傻事[2]

引用

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

扩展功能

版本历史

介绍了R2014a

全部展开