OpenCV's Pinhole calibration model reduces FOV, should i use Fisheye?

时间:2015-07-08 15:42:26

标签: opencv camera-calibration opencv3.0 fisheye fieldofview

I have a wide angle camera, the specifications say it is around 150°, but to me seems more ~100° horizontal and ~80° vertical. Anyway, once calibrated these fields of view are reduced by ~20 degrees each.

This is true for both the values returned by cv::calibrationMatrixValues function and the rectified frames, in which relatively big external portions are cropped.

Is this behavior normal? If it is, can I avoid this problem using the newer Fisheye camera model? With Fisheye is it possible to know the measured FOVs? I cannot find something like fisheye::calibrationMatrixValues.

2 个答案:

答案 0 :(得分:0)

cv :: getOptimalNewCameraMatrix可以完成这项工作。

答案 1 :(得分:0)

对于您的情况,我认为最好的解决方案是使用Open CV 3.4.X中的cv :: fisheye模块。 (C ++,MS Windows)。未失真的图像会比初始图像大得多,但会具有一定的大小。

在我的情况下,我使用cv :: fisheye :: calibrate制作了K和D(相机矩阵和径向失真系数矩阵)。然后,我使用cv :: fisheye :: initUndistortRectifyMap生成X和Y坐标的地图。最后,我使用cv :: remap通过initUndistortRectifyMap中的地图使鱼眼镜头的图像不失真。