Camera 从图像计算焦距

Camera 从图像计算焦距,camera,Camera,我试图计算我的镜头的焦距(我有4个不同的镜头,我称它们为镜头1,2,3,4)。我知道我使用的摄像机的传感器尺寸(我使用两个不同的摄像机),我知道物体的宽度,我知道工作距离 我使用以下公式: f=焦距宽度=(工作距离*传感器宽度)/(物体) 宽度+传感器宽度) 我还使用了相同的公式,但有一点变化: f'=焦距宽度=(工作距离*传感器宽度)/物体 宽度 我的相机的传感器尺寸如下所示: 型号:134MCU-1/3“-3.52毫米*4.78毫米 型号:130CU-1/4“-2.75毫米*3.64毫米 问

我试图计算我的镜头的焦距(我有4个不同的镜头,我称它们为镜头1,2,3,4)。我知道我使用的摄像机的传感器尺寸(我使用两个不同的摄像机),我知道物体的宽度,我知道工作距离

我使用以下公式:

f=焦距宽度=(工作距离*传感器宽度)/(物体) 宽度+传感器宽度)

我还使用了相同的公式,但有一点变化:

f'=焦距宽度=(工作距离*传感器宽度)/物体 宽度

我的相机的传感器尺寸如下所示:

型号:134MCU-1/3“-3.52毫米*4.78毫米

型号:130CU-1/4“-2.75毫米*3.64毫米

问题是,我用两台相机在已知工作距离拍摄了几张照片,并测量了图像宽度(我在图像场景中放置了一把尺子)。之后,我用给出的公式计算了ff'。在计算了焦距之后,我得出了几个我认为不一致的观察结果。观察结果如下:

  • 随着工作距离的增加,每个透镜的计算焦距收敛到某个值。我希望为每个工作距离计算相同的ff'值。为什么会这样?是否对工作距离有任何依赖性,或对工作距离有任何限制(例如,对于焦距f mm的透镜,工作距离不能小于n
  • 我有8种不同的成像设置,因为我有4个镜头和2个摄像头。使用134MCU拍摄的图像计算的ff'值与使用130CU拍摄的镜头1和镜头2的图像不同。透镜3和4的计算值相同。为什么会发生这种情况

    • 使用130CU计算的透镜1值约为1.6 mm
    • 使用130CU计算的lens 2值约为2.4mm
    • 使用130CU计算的透镜3值约为2.8 mm
    • 使用130CU计算的透镜4值约为3.6 mm
    • 使用134MCU计算的镜头1值约为1.4 mm
    • 使用134MCU计算的镜头2值约为2.2 mm
    • 使用134MCU计算的镜头3值约为2.8 mm
    • 使用134MCU计算的镜头4值约为3.6 mm
  • 当我和我的镜头供应商交谈时,他们告诉我镜头1、2、3、4的焦距分别为2.1毫米、2.5毫米、2.8毫米和3.6毫米。那么,为什么我的计算值与这些不匹配呢?我的计算有什么问题吗

  • 我使用的图像可以在中找到。如果有人能帮忙,我将非常感激

    问候,


    我刚下载了你发布的图片,答案就在眼前

    您使用的公式是假设每条光线从对象到传感器沿直线传播。事实上,这些广角镜头具有相当复杂的多个表面,光线在穿过“堆叠”时多次改变方向。因此,边缘有明显的变形。直尺上线条的高度向边缘变小——在这里,一个“完美的针孔相机”可以使它们保持精确的比例

    很难找到一个能正确解释这种失真的方程式——通常相机的计量应用(人们真正关心这些事情的地方)会在感兴趣的焦距处进行几何校准,以纠正这种失真

    所以你的问题“我的计算有什么问题吗?”的答案是:“是的,有什么问题-你的计算是为了一个理想的系统。你没有一个理想的系统。”

    编辑我突然想到,通过使用“更小的传感器”,您可以做得更好:

  • 拍摄你已有的照片
  • 查看图像的一部分(靠近中心)
  • 查找标尺上跨度小于传感器宽度10%的两个标记之间的距离(以像素为单位)
  • 计算“表观传感器尺寸”=
    (标记之间的像素数/传感器上的像素数)*传感器宽度
  • 在计算中使用表观传感器尺寸

  • 通过使用可变数量的像素(与标尺上精确的分割数相匹配),可以限制所需的估计/插值量。我认为这将解决大部分失真问题,并使您的结果与制造商的数据一致。

    您的计算假设了一个理想的针孔系统,这显然是您没有的。你的广角镜头表现出极大的失真。试着将你的测量限制在你的光学系统的中心,这似乎是无失真的。您应该得到更符合制造商指定焦距的结果

    编辑: 弗洛里斯上面说的…

    你把“工作距离”称为什么?到传感器表面,还是到透镜中心?很难相信,在1/3英寸的传感器上,焦距可以达到1.6毫米——你会在边缘处产生巨大的扭曲。记住,“真实世界的光学”并不完全遵循“傍轴公式”。光线不会以直线通过光学。我所说的“工作距离”是指两个传感器之间的距离