我知道默认的OpenCV校准系统模拟针孔相机,但我正在使用一个使用极宽视场镜头(187度)的系统。是否有现有的方法在OpenCV中处理这种情况,或者只使用广角镜头进行操作?还是说我必须为我的系统重新编写所有的校准/去畸变代码?
我知道默认的OpenCV校准系统模拟针孔相机,但我正在使用一个使用极宽视场镜头(187度)的系统。是否有现有的方法在OpenCV中处理这种情况,或者只使用广角镜头进行操作?还是说我必须为我的系统重新编写所有的校准/去畸变代码?
OpenCV鱼眼相机校准模块使用基于针孔相机模型的方法。在该模型中,相机的光学轴与来自相机前方某个物体的光线之间有一个角度。我们还有光学轴与对应于物体的无畸变图像上一点的方向之间的角度。 如果校准正确,这两个角度将相等。这意味着如果您的相机FOV约为180度,则无畸变图像中心到边缘的距离将等于无限远。 因此,OpenCV鱼眼纠正模块(cv::fisheye)仅对图像的中心部分进行畸变校正。关于这种限制的更详细说明我放在了这里。在我的实验结果中,无畸变图像中获得了140-150度FOV。如果140-150度的FOV适合您,您可以直接使用cv::fisheye。