我正在进行一项基于机器视觉的项目。使用具有高分辨率针孔摄像头的广角镜头。
工作距离:摄像机与物体之间的距离。
分辨率将近10MP。图像大小可能为3656像素宽度和2740像素高度。 项目要求如下:
- 我的工作距离必须接近5米。
- 摄像机需要以13度的角度倾斜。
为了避免相机中的镜头畸变,我使用OpenCV进行相机校准。
以下是我对相机校准的疑问:
由于工作距离为5米,是否应该使用相同距离进行相机校准?
由于相机在应用程序中被倾斜了13度,是否有必要使校准相机在相应的角度倾斜?
我正在进行一项基于机器视觉的项目。使用具有高分辨率针孔摄像头的广角镜头。
工作距离:摄像机与物体之间的距离。
分辨率将近10MP。图像大小可能为3656像素宽度和2740像素高度。 项目要求如下:
为了避免相机中的镜头畸变,我使用OpenCV进行相机校准。
以下是我对相机校准的疑问:
由于工作距离为5米,是否应该使用相同距离进行相机校准?
由于相机在应用程序中被倾斜了13度,是否有必要使校准相机在相应的角度倾斜?
对于第一个问题,我的答案是"或许",对于第二个问题则是否定的。
虽然严格来说,在镜头校准时不需要与目标在相同或附近的距离处进行校准,但实际上,只有当你有足够的景深(特别是当你对焦在无限远处)并使用固定光圈时才有可能实现。
原因在于相机校准的第二条规则:"在校准期间和之后,你不得触摸镜头。"特别是,你不能重新聚焦或更改光圈,因为聚焦和光圈都会影响非线性镜头畸变和视场(取决于镜头的影响程度)。当然,你完全可以自由地更改曝光时间,因为这不会影响镜头的几何形状。
关于此,还可以参考我 另一篇回答 的一般评论。
matlab
:我可以推荐使用Camera Calibration Toolbox for MATLAB进行相机校准,它是一个不错的易用工具,可以很好地指导您完成整个过程。摄像头的角度不是问题,但您确实希望将校准目标放在大约工作距离处与相机进行校准。理论上,距离不应该有影响。但在现实中,如果您在1米处进行校准,然后尝试测量距离为5米的物体,误差会更大。
此外,请查看Computer Vision System Toolbox for MATLAB中的CameraCalibrator应用程序。