【发布时间】:2016-03-22 20:12:48
【问题描述】:
我正在使用 OpenCV 校准使用带鱼眼镜头的相机拍摄的图像。
我正在使用的功能是:
-
findChessboardCorners(...);查找校准图案的角落。 -
cornerSubPix(...);细化找到的角落。 -
fisheye::calibrate(...);校准相机矩阵和畸变系数。 -
fisheye::undistortImage(...);使用从校准获得的相机信息来消除图像失真。
虽然生成的图像看起来确实不错(直线等),但我的问题是该函数切除了太多图像。
这是一个真正的问题,因为我使用了四个摄像头,它们之间的夹角为 90 度,并且当这么多边被切掉时,它们之间没有重叠区域,因为我要缝合图像.
我研究过使用fisheye::estimateNewCameraMatrixForUndistortRectify(...),但我无法得到好的结果,因为我不知道我应该输入什么作为R 输入,因为fisheye::calibrate 的旋转矢量输出是3xN(其中 N 是校准图像的数量),fisheye::estimateNewCameraMatrixForUndistortRectify 需要 1x3 或 3x3。
下面的图片显示了我的未失真结果的图片,以及我理想中想要的那种结果的示例。
不失真:
想要的结果示例:
【问题讨论】:
标签: c++ opencv computer-vision camera-calibration fisheye