使用图像计算到点之间的实际距离

时间:2014-03-27 19:09:56

标签: image-processing camera distance pixel

我在3D中做了一些图像处理任务,我遇到了问题。

我使用了一个模拟器,它为我提供了一种特殊类型的相机,可以使用相机图像中该点的像素来判断相机位置与任意点之间的距离。例如,我可以获得相机与放置在像素21:34中的物体之间的距离。

现在我需要计算相机图像中两个任意像素之间的实际距离。 当摄像机垂直放置在场地的上方并且所有物体都在地面上时很容易,但是当摄像机处于水平状态时,图像中物体的深度是不同的。

那么,我该怎么办?

1 个答案:

答案 0 :(得分:2)

简单的3D重建将实现这一目标。从相机到3D中的点的距离沿着光轴Z,您已经拥有。你还需要X,Y:

X = u*Z/f;  
Y = v*Z/f,

其中f是以像素为单位的相机焦距,Z是以mm或米为单位的距离,u,v是以图像为中心的坐标:u =列宽/ 2,v =高度/ 2行。注意不对称性,因为当Y和V上升时行减少。一旦得到X,Y,Z,3D中的距离由欧几里德公式给出:

dist = sqrt((X1-X2) 2 +(Y1-Y2) 2 +(Z1-Z2) 2