【发布时间】:2023-03-22 13:47:01
【问题描述】:
我有什么:
- 一台校准过 by opencv 的相机(我知道所有的 k、s 和 tau)
- 位置和方向(我知道 R 和 t)
- 图像平面上的一个点 (u, v)
- 沿穿过 (u, v) 的光线的距离
我想要什么:
- 沿穿过 (u, v) 的光线在给定距离处的 3D 点,考虑到失真
opencv 中有什么东西可以做到这一点还是我必须自己推导出来?
【问题讨论】:
-
你有
K,真正的深度Z?对于给定的(u,v),使用undistortPoints()应用反向透视变换。它给你(x,y,1)。那么 3D 坐标就是(x*Z, y*Z, Z)。 -
@Catree 我想扭曲,而不是不扭曲。
-
相机模型如下所示:
(X,Y,Z)在相机帧中,然后用透视投影(x,y,1)“移除”深度,然后投影到图像平面(u,v),然后应用失真。在投影图像中应用失真。因此,要么您正在处理图像中的失真,并且您可以不失真您的 2D 坐标,要么您没有失真。