opencv 如何通过摄像机标定的结果计算焦距(单位:mm)?

hlswsv35  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(133)

相机校准结果中的焦距是以像素为单位的,但我需要以mm为单位的值。如何计算?
我用OpenCV校准了相机,得到了内部参数矩阵。我还在罗技社区得到了相机传感器尺寸。

the camera matrix is
[1432.379199223981, 0, 949.4032591833937;
 0, 1432.97806149025, 518.5291260500587;
 0, 0, 1]
and the size of sensor is 6.00mm, width of 4.80mm and height of 3.60mm (16:9 format).

我想得到焦距的单位是mm,怎么计算?

djmepvbi

djmepvbi1#

这只是一个比例:
sensor_width_mm:传感器宽度_像素=焦距_长度_mm:焦距_长度_像素
有一个物理焦距(透镜的出射光瞳和焦点之间的距离),但是你可以写出两个这样的方程,一个是宽度,一个是8,所以你会得到两个结果。理论上,这种差异是由于像素的非方形。如果传感器的规格说明书上说像素是方形的,(也就是说,如果像素之间所谓的“点距”间距在垂直和水平方向上是相同的),并且没有执行不均匀的图像处理,那么差异本身可能是虚幻的,这取决于您的校准有多精确。在这种情况下,只需平均即可。

相关问题