Computer vision 为什么相机内部矩阵中的焦距是二维的?

Computer vision 为什么相机内部矩阵中的焦距是二维的?,computer-vision,camera-calibration,perspectivecamera,Computer Vision,Camera Calibration,Perspectivecamera,在相机中,只有一个焦距位于主点和相机中心之间 但是,在计算相机的固有参数后,矩阵包含 (fx, 0, offsetx, 0, 0, fy, offsety, 0, 0, 0, 1, 0) 这是因为图像传感器的像素在x和y方向上不是正方形吗 谢谢。简言之:是的。为了建立一个能够描述具有矩形像素的相机的数学模型,必须引入两个独立的焦距。我将引用经常被推荐的“”(第373页),它很好地涵盖了这一部分,如果您想了解更多这方面的背景,我建议您了解: 焦距fx(例如)实

在相机中,只有一个焦距位于主点和相机中心之间

但是,在计算相机的固有参数后,矩阵包含

(fx,  0,  offsetx,  0,
 0,  fy,  offsety,  0,
 0,   0,  1,        0)
这是因为图像传感器的像素在x和y方向上不是正方形吗


谢谢。

简言之:是的。为了建立一个能够描述具有矩形像素的相机的数学模型,必须引入两个独立的焦距。我将引用经常被推荐的“”(第373页),它很好地涵盖了这一部分,如果您想了解更多这方面的背景,我建议您了解:

焦距fx(例如)实际上是 透镜的物理焦距和个体的尺寸sx imager元素(这应该是有意义的,因为sx有像素单位 而F的单位是毫米,这意味着fx 以所需的像素单位表示)。[…]重要的是保持 不过,请记住,sx和sy不能通过任何方法直接测量 摄像机校准过程中,物理焦距F也不是 可直接测量。只有fx=F*sx和fy=F*sy的组合 可以在不拆卸摄像机和测量的情况下导出 它的组成部分是直接的


非常感谢,特别是对于“学习opencv”的建议。因此,如果我想使用F,并且我有相机内部的fx和fy,我们如何知道sx和sy的值?这句话实际上是错误的,并且具有误导性:“焦距fx(例如)实际上是透镜的物理焦距和单个成像仪元件的尺寸sx的乘积”。fx和fy是以像素为单位测量的,因此正确的表达式是:fx[pixel]=焦距[mm]/成像仪元素长度[mm/像素]。也就是说,它是一个部门,而不是一个产品。很难相信这样一个错误真的出现在学习OpenCV的书中,但我身边没有一本可以检查的。。。(?)。谷歌图书预览版确认它实际上是以这种方式出现在书中的。显然,他们对sx的定义是[pixel/mm]@Megha:sx和sy的值可能由相机制造商给出。@JoseLuisBlanco sx=10像素/mm,f=35mm,然后sx*f=35mm*10像素/mm=350像素,这不是一个除法