使用 python 计算图像中两点之间的实际距离

calculate the real distance between two points in an image with python

在业务项目中,我需要找出从手机接收到的图像中两点之间的真实距离phone。由于EXIF文件中缺少smartphone相机中图像传感器的物理尺寸等信息,通过估计距离,强制用户在图像中放置一定高度和宽度的物体,我能够估计图像传感器的大小,但有一些错误。 ‌‌不过这些错误是可以避免的,不会有太大问题。为此,我遵循了 post.

中的提示

https://photo.stackexchange.com/questions/12434/how-do-i-calculate-the-distance-of-an-object-in-a-photo/12437#12437

现在我想找出图像中两点之间的距离。根据这个link,

calculate the real distance between to point using image

可以得到两个想要的点之间的距离,但是没看懂这个公式中的列和行是怎么得到的

如果能得到帮助,我将不胜感激。如果我走错了,谢谢你的解释

在您分享的link中,点u,v是图像的中心点,是根据sensor/digitizer的行和列以及图像的宽和高找到的。

这篇论文很好地解释了图像中心: https://www.ri.cmu.edu/pub_files/pub4/willson_reg_1994_3/willson_reg_1994_3.pdf

但是,行值和列值是实际相机本身的一部分,不一定与图像相关。

除此之外,其他一切都是使用这两个值以及 z-axis 值和焦距找到的,然后将其代入欧几里得距离公式。