MATLAB的估计UncalibratedRectification在数学上表达了什么?它究竟是什么计算的?

时间:2015-03-10 08:36:24

标签: matlab geometry computer-vision matlab-cvst projection-matrix

MATLAB的estimateUncalibratedRectification在数学/几何术语方面做了什么?

它的确切计算结果是什么?

据我了解,如果相机参数未知,那么基本矩阵可以从两个图像中计算出来,基本矩阵。

所以,据我所知,estimateUncalibratedRectification的结果应该是某种变换T的模糊,因为基本矩阵 - 如果相机的内在因素可以从两个图像中计算出来参数未知 - 直到任意投影变换都是模糊的。

这是对的吗?

我的猜测是,estimateUncalibratedRectification计算P1的投影转换image1P2的另一个投影转换image2,以便在使用这些时在相应的图像上进行两次变换(P1P2),然后得到的图像(R1R2)将在对应的极线将在的意义上得到纠正相同的行,如下图所示。

enter image description here

我的问题是:这个结果有多么模糊? 我的感觉是,结果转换P1P2在某些转换T之前是不明确的,但我真的不明白这个T是什么。

有人可以解释一下estimateUncalibratedRectification在概念上/数学上/几何上如何运作,并说出T可以是什么?

换句话说,转化是什么 T,当应用于R1R2时会产生图片对TR1TR2具有与R1R2相同的修正属性,即相应的极线显示在TR1TR2的匹配行中,就像它们一样在R1R2进行?

这是T是什么?是否有这样的T

PS。:在发布此问题之前,我已经阅读了estimateUncalibratedRectification.m的代码,但这并没有让我更聪明。

1 个答案:

答案 0 :(得分:1)

如果内在函数未知,则结果在投影变换之前是模糊的。换句话说,如果您使用estimateUncalibratedRectification来纠正一对图像,然后计算视差并进行3D重建,那么您将重建3D场景直到投影变换。直线将是直线,平行线将是平行的,但您的角度和尺寸可能是错误的。

要确定投射变换是什么,您需要更多信息。如果您知道相机内在函数,那么您可以进行缩放重建。换句话说,您可以获得正确的角度和相对尺寸。要获得正确的比例,您需要知道基线(相机之间的距离)或场景中某些参考物体的大小。

更直接的方法是使用Camera Calibrator应用程序或立体相机校准器应用程序校准您的相机。