我一直在使用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是'不稳定的'有时候我必须自己计算基本矩阵吗?
提前致谢!