可以使用标准openCV校准鱼眼镜头吗?

tro*_*jek 1 c++ camera opencv image-processing camera-calibration

我尝试使用> 180度的超广角镜头校准相机。我使用的是OpenCV 3.2和相机校准代码opencv/samples/cpp/tutorial_code/calib3d/camera_calibration,因此我从这篇文章中得到的图像与相似。我在youtube.com上发现了许多电影,人们在这些电影上展示了如何校准鱼眼镜头,例如此视频

我知道超广角镜头相机的校准可能很棘手。我还发现在openCV contrib中还有另一个用于鱼眼镜头校准的标准模型

是否可以使用标准OpenCV的摄像机校准模型来校准这种广角摄像机,还是应该使用其他模型(例如,openCV contrib的模型)?

Jac*_*old 5

几周前,我正在研究相同的问题,我发现标准模型不适用于我的鱼眼图像(> 180 FOV)。话虽如此,我确实在Github上找到了一个拉取请求,该请求仅解决了这个问题-https: //github.com/opencv/opencv/pull/6801

我最终放弃了对标准模型,只是使用的全方位模型- http://docs.opencv.org/trunk/dd/d12/tutorial_omnidir_calib_main.html这工作就像一个魅力。

顺便提一句,当我研究失真校正主题时,我遇到了一个常见的误解,即鱼眼镜头产生的鱼眼图像“失真”,的确可能会失真,但是得到的图像仅仅是投影。像其他投影一样,鱼眼是将3D世界映射到2D平面的多种方式之一。大多数相关文献将其称为“失真”并没有帮助。鱼眼镜头经过精心设计,可以产生带有弯曲线的图像,而这些弯曲线在标准(即直线)透镜中本应是笔直的。单词“失真”仅保留给对标准(即直线)透镜产生负面影响的几何像差。

就我而言,即使我一直在研究畸变校正,但最终并没有对任何畸变进行校正,我只是对透视投影进行了鱼眼式设计-您可以在http://paulbourke.net/dome上找到更多信息。/鱼2 /

此外,关于捕获棋盘图像,请遵循以下建议- 如何验证网络摄像头校准的正确性?