我们可以在不运行校准代码的情况下找到相机矩阵吗?

Posted

技术标签:

【中文标题】我们可以在不运行校准代码的情况下找到相机矩阵吗?【英文标题】:Can we find Camera matrix, without running the calibration code? 【发布时间】:2013-06-06 06:30:24 【问题描述】:

我想知道是否有可能知道相机校准矩阵,只要知道它的规格,而不使用相机校准???

【问题讨论】:

【参考方案1】:

您可以猜测,但这将不会取代正确的校准,因为每台相机都是不同的——即使它是完全相同的类型。

在您的相机矩阵中,通常有 fx、fy、cx、cy(用于方形像素)。取 cx=w/2 和 cy=h/2,其中 w 和 h 分别是图像的宽度和高度。

对于 fx 和 fy,它有点棘手。理论上,我们有 fx = w*f_mm/w_mm,其中 f_mm 是以 mm 为单位的镜头焦距,w_mm 是以 mm 为单位的 CCD 传感器的宽度。 但是,由于镜头是圆形的而传感器通常不是圆形的,因此您不能只从规格中获取值。鉴于规格中的传感器尺寸,有些表格应该可以很好地估计传感器的宽度和高度,例如在Wikipedia。但是,如果镜头的安装方式略有不同,这些值就不再适用了。

这样,您也不会校准失真。强烈建议进行适当的校准,例如用棋盘。

【讨论】:

以上是关于我们可以在不运行校准代码的情况下找到相机矩阵吗?的主要内容,如果未能解决你的问题,请参考以下文章

来自 Unity 的相机内在矩阵

如何在emgu CV中进行相机校准后访问旋转和平移向量

用于 OpenCV 的 Iphone 6 相机校准

相机校准,焦距值似乎太大

ThreeJS:更新相机 FOV

使用来自 OpenCV 的转换矩阵手动进行图像校准