我正在使用OpenCV来校准使用带鱼眼镜头的相机拍摄的图像.
我正在使用的功能是:
findChessboardCorners(...);
找到校准图案的角落.
cornerSubPix(...);
改善找到的角落.
fisheye::calibrate(...);
校准相机矩阵和失真系数.
fisheye::undistortImage(...);
使用从校准获得的相机信息使图像不失真.
虽然生成的图像看起来看起来很好(直线等),但我的问题是该功能切掉了太多的图像.
这是一个真正的问题,因为我使用了四个90度相机的相机,当这么多的边被切断时,它们之间没有重叠的区域,这是我要缝合图像所需要的.
我调查使用fisheye::estimateNewCameraMatrixForUndistortRectify(...)
但是我无法得到好结果,因为我不知道我应该R
输入什么作为输入,因为旋转矢量输出fisheye::calibrate
是3xN(其中N是校准图像的数量)并且fisheye::estimateNewCameraMatrixForUndistortRectify
需要1x3或3x3.
下面的图像显示了我的非失真结果的图像,以及我理想情况下想要的结果的一个例子.
Undistortion:
想要结果的示例: