Camera 从图像计算焦距
我试图计算我的镜头的焦距(我有4个不同的镜头,我称它们为镜头1,2,3,4)。我知道我使用的摄像机的传感器尺寸(我使用两个不同的摄像机),我知道物体的宽度,我知道工作距离 我使用以下公式: f=焦距宽度=(工作距离*传感器宽度)/(物体) 宽度+传感器宽度) 我还使用了相同的公式,但有一点变化: f'=焦距宽度=(工作距离*传感器宽度)/物体 宽度 我的相机的传感器尺寸如下所示: 型号:134MCU-1/3“-3.52毫米*4.78毫米 型号:130CU-1/4“-2.75毫米*3.64毫米 问题是,我用两台相机在已知工作距离拍摄了几张照片,并测量了图像宽度(我在图像场景中放置了一把尺子)。之后,我用给出的公式计算了f和f'。在计算了焦距之后,我得出了几个我认为不一致的观察结果。观察结果如下:Camera 从图像计算焦距,camera,Camera,我试图计算我的镜头的焦距(我有4个不同的镜头,我称它们为镜头1,2,3,4)。我知道我使用的摄像机的传感器尺寸(我使用两个不同的摄像机),我知道物体的宽度,我知道工作距离 我使用以下公式: f=焦距宽度=(工作距离*传感器宽度)/(物体) 宽度+传感器宽度) 我还使用了相同的公式,但有一点变化: f'=焦距宽度=(工作距离*传感器宽度)/物体 宽度 我的相机的传感器尺寸如下所示: 型号:134MCU-1/3“-3.52毫米*4.78毫米 型号:130CU-1/4“-2.75毫米*3.64毫米 问
- 使用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/3英寸的传感器上,焦距可以达到1.6毫米——你会在边缘处产生巨大的扭曲。记住,“真实世界的光学”并不完全遵循“傍轴公式”。光线不会以直线通过光学。我所说的“工作距离”是指两个传感器之间的距离