如何使用OpenCV获得相机焦距

时间:2019-10-07 12:43:18

标签: opencv opencv3.0 opencv4android opencv3.1

我从事的项目需要焦距才能计算出与图像的距离。那么有什么方法可以自动获取相机属性

2 个答案:

答案 0 :(得分:0)

您可以使用OpenCV校准相机。有关详细信息,请参见this教程。结果,您将获得

形式的相机矩阵
fx 0 cx
0 fy cy
0  0 1

其中:

fxfy相机在x和y方向上的焦距,以像素

cxcy主点(所有光线会聚的点)以像素

为坐标

然后,如果您知道传感器的物理直径,则可以调用calibrationMatrixValues function来获取相机的焦距,以实际单位(例如毫米)为单位。

答案 1 :(得分:0)

正确的方法是进行相机校准,这并不容易,但有据可查。 https://learnopencv.com/camera-calibration-using-opencv/

过去我使用过 BoofCV 的桌面应用程序。 教程相机校准 - BoofCV

本教程将逐步指导您。 它涉及:

正在下载他们的应用。 打印棋盘格并将其粘贴在坚硬的表面上,这很有趣。 遵循校准过程。 请记住:这必须只执行一次(对于每个相机)。