如何找到每米像素

时间:2018-05-18 09:40:32

标签: image matlab image-processing computer-vision

我有一个静态相机,我通过它专注于覆盖区域,相机的总覆盖区域是

length 78.7 cm
width 102.1 cm
heigh 118.5 cm

我的图片尺寸为800 * 480

现在在总覆盖区域,我有另一个盒子

length is 22.6 cm
width is 25.6 cm
height is 24 cm

我想知道每米有多少像素。我正在使用

的公式

m/pixels * 0.39但它没有给出确切的答案。

3 个答案:

答案 0 :(得分:2)

您的静态相机将具有特定的固定镜头大小,该大小确定焦距(f值)。这意味着沿景深有一个特定的理想焦点,此2D焦平面将形成与镜头的形状和大小成比例的抛物线形状,并且由于镜头的大小和FOV与镜头成反比,所以您的镜头越大镜头尺寸,较小的FOV,并且正如已经提到的那样,焦点从焦点区域的中心点向各个方向向外减小(请考虑多普勒效应),这就是为什么我们倾向于在图像/视频的角落发现模糊像素,焦平面前景/背景之外的物体。

这是一个要解决的漂亮问题。

因此,通过计算斜边的长度与直角三角形的高度,可以知道焦点与图像传感器显示的最外面像素之间的焦距差,并且您应该知道相机的分辨率您可以计算出各个方向上中心点的像素密度损失。

我觉得可能有一个看起来很干净的公式,可以使用那只狡猾的狗Pi来计算它,但我不为所动。

作为步骤1,您可能会发现它很有用: https://www.omnicalculator.com/math/right-triangle-side-angle

使用上述计算器:

斜边= C =相机到最外面像素捕获的距离

三角形的高度= b =相机到焦点(照片中心)的距离

FOV角一半=α(对于每个像素的垂直和水平FOV示例,例如2MP-1920 x 1080参考点)

每个镜头尺寸都有特定的垂直和水平FOV角。

这将允许您计算场景中对象的哪些部分处于完美焦点内,从而保留最密集的像素。

PS,如果要提高科学准确性,则需要针对图像传感器上每个像素的超出像素大小的像素进行计算,因此,如果您有2MP相机,则需要1920 x 1080 / 1/3“ (例如,计算传感器上的像素密度)。镜头玻璃的质量也将决定因素,只是不确定在哪个方向上。

场景中物体的颜色,大气条件和场景中的勒克斯水平将允许可变的光波长进入相机,也影响捕获的像素密度。

最后,因为您要计算捕获的显示分辨率与显示的显示分辨率之间的转换结果,因此会影响实际性能。

实际上,除非您测量从传感器上的像素到目标点的每个像素路径的每个距离,否则您将无法确定。

让我们知道如何进行。我也可能是完全错误的大声笑

答案 1 :(得分:1)

除非您知道到被捕获物体的距离,否则无法计算每米的像素数。 10米外的物体每米的像素数比1米外的物体少。您可以准确计算的是相机视场每度的像素数。

即使您将相机对准平坦的墙壁,相机与墙壁之间的距离也会随着入射角度的变化而变化,因此墙壁中间的距离将远离相机而非距离角落的距离的墙。这可以使用一些简单的三角函数计算。

答案 2 :(得分:0)

许多制造商使用每米像素作为衡量视频监控图像质量的指标。例如,您需要大约130 ppm的分辨率才能拥有足够的细节,以准确识别面部细节并识别车牌。

要计算像素密度(每米像素),您需要图像或视频源的水平像素数以及所查看场景的以米为单位的宽度。

因此

ppm =图像宽度(以像素为单位)/视野(以米为单位)

针对特定场景计算ppm的最简单方法是将相机指向要计算ppm的位置,然后将图像的像素数除以该相机视野范围内以米为单位的距离具体点。请注意,此尺寸在相机的垂直轴上将不是恒定的。图片的每一行将具有不同的像素密度。

如果您校准摄像机,则可以从理论上进行这些计算,因为您可以事先知道视场的宽度,但这会稍微复杂一些。