首页 文章

从图像计算焦距

提问于
浏览
2

我正在尝试计算镜头的焦距(我有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

这是问题所在,我从已知的工作距离用两个相机拍了几张照片,然后我测量了图像宽度(我使用给定的公式计算了 ff' . 在计算了焦距后,我想出了几个观察,我认为是不一致的 . 观察结果如下:

  • 随着工作距离的增加,每个镜头的计算焦距会聚到一定值 . 我期望为每个工作距离计算相同的 ff' 值 . 为什么会这样?工作距离是否有任何依赖性,或者对工作距离有任何限制(例如,对于焦距为 f mm 工作距离的镜头不能小于 n )?

  • 我有8种不同的成像设置,因为我有4个镜头和2个相机 . 使用134MCU拍摄的图像计算的 ff' 值与使用130CU拍摄的镜头1和镜头2的图像不同 . 镜头3和4的计算值相同 . 为什么会发生这种情况?

  • 使用 130CU 计算的 lens 1 值大约为 1.6 mm .

  • 使用 130CU 计算的 lens 2 值大约为 2.4 mm .

  • 使用 130CU 计算的 lens 3 值大约为 2.8 mm .

  • 使用 130CU 计算的 lens 4 值大约为 3.6 mm .

  • 使用 134MCU 计算的 lens 1 值大约为 1.4 mm .

  • 使用 134MCU 计算的 lens 2 值大约为 2.2 mm .

  • 使用 134MCU 计算的 lens 3 值大约为 2.8 mm .

  • 使用 134MCU 计算的 lens 4 值大约为 3.6 mm .

  • 当我与镜头提供商谈话时,他们告诉我镜头1,2,3,4的焦距分别为2.1毫米,2.5毫米,2.8毫米和3.6毫米 . 那么,为什么我的计算值不符合这些?我的计算有什么问题吗?

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

问候,

GüneyKayım

2 回答

  • 2

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

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

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

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

    EDIT 我突然意识到你可以通过使用"smaller sensor"做一些更好的事情:

    • 拍摄您已有的图像

    • 查看图像的一部分(靠近中心)

    • 找到标尺上两个标记之间的距离(以像素为单位),其距离小于传感器宽度的10%

    • 计算"apparent sensor size" = (number of pixels between markers / number of pixels across sensor) * sensor width

    • 在计算中使用表观传感器尺寸

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

  • 0

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

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

相关问题