从图像计算焦距

时间:2013-08-14 12:46:23

标签: camera

我正在尝试计算镜头的焦距(我有4种不同的镜头,我称之为镜头1,2,3,4)。我知道我正在使用的相机的传感器尺寸(我正在使用2个不同的相机),我知道物体宽度,我知道工作距离。

我正在使用以下公式:

  

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

我也使用了相同的公式,稍加改动:

  

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

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

  

型号:134MCU - 1/3“ - 3,52 mm * 4.78 mm

     

型号:130CU - 1/4“ - 2,75 mm * 3,64 mm

问题是,我用已知工作距离的两个相机拍了几张照片,然后我测量了图像宽度(我在图像场景中放了一个标尺)。之后,我使用给定的公式计算了 f f' 。在计算了他的焦距之后,我想出了几个观察结果,我认为这些观察结果是不一致的。观察结果如下:

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

    • 使用 130CU 计算的镜片1 值大约<1.6> 。
    • 使用 130CU 计算的镜头2 2.4 mm
    • 使用 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
  3. 当我与镜头提供商交谈时,他们告诉我镜头1,2,3,4的焦距分别为2.1毫米,2.5毫米,2.8毫米和3.6毫米。那么,为什么我的计算值不符合这些?我的计算有什么问题吗?

  4. 我使用的图像可以在here中找到。如果有人能提供帮助,我将非常感激。

    此致

    GüneyKayım

2 个答案:

答案 0 :(得分:2)

我刚下载了您发布的图片,答案就是盯着我们。

您使用的公式是假设每条光线从物体到传感器的直线传播。实际上,这些广角镜头具有相当复杂的多个表面,并且当光线穿过“堆叠”时,光线会多次改变方向。结果,朝向边缘存在显着的扭曲。标尺上的线条高度朝向边缘变小 - “完美的针孔相机”将使它们保持完全比例。

很难想出一个能够正确解释这种失真的方程 - 通常是摄像机的测量应用(人们真正关心这些东西)将在感兴趣的焦距处进行几何校准以校正它。

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

编辑我想到你可以通过使用“更小的传感器”来做得更好:

  1. 拍摄您已有的照片
  2. 查看图像的一部分(靠近中心)
  3. 找到标尺上两个标记之间的距离(以小于传感器宽度的10%)
  4. 计算“视在传感器尺寸”= (number of pixels between markers / number of pixels across sensor) * sensor width
  5. 在计算中使用表观传感器尺寸
  6. 通过使用可变数量的像素(与标尺上的确切分割数匹配),您可以限制估算/插值的数量。我认为这将解决大部分失真问题,并为您提供与制造商数据一致的结果。

答案 1 :(得分:0)

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

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