stereoRectifyUncalibrated(hartley rectification)镜像图像

时间:2015-12-11 15:26:28

标签: c++ opencv camera-calibration

我一直在使用Hartley校准算法,因为由于相机旋转的高基线立体声,stereoCalibrate / stereoRectify不提供输出。

虽然左图像被严重剪切和镜像。

Stereo images left right. And remapped Images left right

我使用了张的反剪切算法,但它没有恢复镜像。

这是我从stereoRectifyUncalibrated获得的单应矩阵:

H1(left):
[-0.09377726121369795, 0.04328690336693735, 86.72993843873914;
 -0.004977161606602101, 0.155454257309974, 3.550060089738537;
 -1.736436872968937e-05, -4.655031712266116e-07, 0.1663350901457538]

这是我从反剪切实现中获得的剪切变换矩阵:

shear matrix (left): 
[1.683146574043227, -0.5007180072161737, 0;
 0, 1, 0;
 0, 0, 1]

我必须添加一个平移矩阵,因为剪切将图像向右移动,所以我计算:

T: 
[1, 0, -144.2016197365122;
 0, 1, 0;
 0, 0, 1]

(来自:

的T.at(0,2)
vec = shear * H1 * (0,0)                   //top left point of image
T.at(0,2) = 0 - vec.at(0,0)

这是我计算新单应性时的图片:

newH1 = T * shear * H1

Image rectified with anti-sheared homography matrix

即使图像现在非常笔直并且现在移动到图片中,它仍然是镜像的....

我已将H1的第一个值设置为正值,但这不是一般解决方案。 并非所有套装(其他相机套装)都能被镜像,但据我所知,findChessboard正确找到了电路板(也按顺序正确)。

OpenCV findFundamentalMat very unstable and sensitive 我已经读过findFundamental是'不稳定的'有时候我必须自己计算基本矩阵吗?

提前致谢!

0 个答案:

没有答案