rectifyStereoImages

纠正的一对立体图像的

描述

[J1J2] = rectifyStereoImages(I1I2stereoParams返回未失真和更正的版本I1I2输入图像用的是立体参数存储的stereoParams对象。

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

[J1J2] = rectifyStereoImages(I1I2tform1tform2返回的整流版本I1I2输入图像应用投影变换tform1tform2。该射影变换由返回estimateUncalibratedRectification功能。

[J1J2] = rectifyStereoImages(___插补另外指定用于整流图像插值方法。您可以指定方法“最近的”“线性”, 要么“立方”

[J1J2] = rectifyStereoImages(___名称,值使用由一个或多个指定的附加选项名称,值对参数。

例子

全部收缩

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

imageDir = fullfile (toolboxdir ('视力''visiondata'...'校准'“立体”);leftImages = imageDatastore(完整文件(IMAGEDIR,“左”));rightImages = imageDatastore(完整文件(IMAGEDIR,“对”));

检测棋盘。

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

指定棋盘关键点的世界坐标。

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

阅读图像。

I1 = readimage(leftImages,1);I2 = readimage(rightImages,1);IMAGESIZE = [大小(I1,1),大小(I1,2)];

校准立体摄像系统。

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

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

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

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

图;imshow(stereoAnaglyph(J1_full,J2_full));

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

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

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

图;imshow (stereoAnaglyph (J1_valid J2_valid));

输入参数

全部收缩

输入图像相对应的摄像机1中,指定为中号——- - - - - -ñ乘3真彩色图像或中号——- - - - - -ñ2-d灰度阵列。输入图像I1I2还必须是真实的,有限的,非稀疏。输入图像必须是同一类。

数据类型:UINT8|uint16|int16|||合乎逻辑

输入与摄像头2对应的图像,指定为an中号——- - - - - -ñ乘3真彩色图像或中号——- - - - - -ñ2-d灰度阵列。输入图像I1I2必须是真实的,有限的,非稀疏。输入图像也必须是同一类。

数据类型:UINT8|uint16|int16|||合乎逻辑

立体摄像系统参数,指定为stereoParameters对象。

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

射影变换为图像1,指定为3乘3矩阵由返回estimateUncalibratedRectification功能或projective2d对象。

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

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

名称 - 值对参数

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

例子:'OutputView'“有效”设置'OutputView'属性“有效”

整流图像的大小,指定为逗号分隔的一对组成的“OutputView',要么“全部”“有效”。当您将此参数设置为“全部”,整流后的图像包括从原始图像的所有像素。当您设置这个值“有效”,将输出图像裁剪为包含有效像素的最大公共矩形的大小。

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

输出像素填充值,指定为逗号分隔的对,由“FillValues'和一个或多个标量值的阵列。当输入图像中的相应的逆变换的位置是完全输入图像边界之外,使用填充值的输出像素。如果I1I2是2-d的灰度图像,则必须将“FillValues'到一个标量。如果I1I2是真彩色图像,那么你可以设置'FillValues'到一个标量或RGB值的3元素向量。

输出参数

全部收缩

不失真和纠正的版本I1,作为中号——- - - - - -ñ-乘3真色图像或作为中号——- - - - - -ñ二维灰度图像。

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

不失真和纠正的版本I2,作为中号——- - - - - -ñ-乘3真色图像或作为中号——- - - - - -ñ二维灰度图像。

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

参考文献

[1] G. Bradski和A. Kaehler,学习OpenCV的:计算机视觉与OpenCV库。塞瓦斯托波尔,CA:奥赖利,2008年。

扩展功能

介绍了R2014a