计算每个图像中两点之间的距离

时间:2017-07-02 10:51:35

标签: image-processing computer-vision projective-geometry

我想验证一张图像中两点C和D(CD)之间的距离。

照片是在我的客厅里拍的。每个瓷砖的尺寸为0.6x0.6(米)。

enter image description here

真实世界的衡量标准:

A点和D点(AD)之间的距离= 1.8米。 A点和B点之间的距离(AB)= 0.6米

图像平面坐标:

一个' =(232,613)

B' =(221,341)

C' =(215,189)

d' =(210,98)

enter image description here

我使用交叉比率来计算CD。

R {A',B',C',D'} = 1.316

R {A,B,C,D} =(AC * BD)/(AD * BC)

计算后,CD为0.584m(而不是0.6m)

问题:

1)我跟随的方法是否正确验证CD?

2)我应该考虑A和D之间的角度(不是90度)

3)我应该在这里看一下消失点吗?

4)如果我们不知道A和B之间的实际距离并且只知道AC和AD,是否可以计算 B和A或B和D之间的距离?

5)上述计算中的差值为0.016m,是否可以接受?

我是投影几何的新手。如果我做错了,请告诉我。

1 个答案:

答案 0 :(得分:1)

  1. 方法是正确的,但我会使用单应性。
  2. 角度无关,交叉是射影不变的
  3. 没必要。
  4. 是的,在估计了平面与其图像之间的单应性后,可以从图像中估算出平面上的每个距离,只要至少有一个已知可以解决尺度。
  5. “可接受”是旁观者的眼睛,因为它取决于您的申请。你的意大利面配方可能会有2.67%的相对误差,但如果你是一个想要在桥上连接横梁的焊工,那么任何超过几毫米的东西都会太多。
  6. 建议 - 测量更多点,消除非线性失真(图像上部墙壁底部的线看起来弯曲),估计单应性。