如何将 3D 世界坐标转换为 2D 图像坐标,反之亦然?

Last updated: August 13, 2026

ZED SDK 提供已配准的深度和 RGB 信息。深度图中坐标为 (u,v) 的像素包含 RGB 图像中坐标为 (u,v) 的像素的深度值。

ZED SDK 还提供点云,为每个像素 (u,v)。提供 3D 和 RGB 信息。

如何获取图像像素的 3D 坐标?

给定像素的 2D 坐标 (u,v),我们可以通过以下公式计算图像坐标系中的 3D 坐标 (X,Y,Z)(Z 向前,X 向右,Y 向下):

Z = depth value of the pixel (u,v) from the depth map
X = (( u - c_x) * Z) / (f_x)
Y = (( v - c_y) * Z) / (f_y)

如何获取 3D 坐标对应的像素坐标?

给定图像坐标系中的 3D 坐标 (X,Y,Z)(Z 向前,X 向右,Y 向下) 可以通过以下公式计算对应像素的 2D 坐标 (u,v):

u = ( X / Z ) * f_x + c_x 
v = ( Y / Z ) * f_y + c_y

f_x, f_y, c_x, 和 c_y 是什么?

它们是通过使用“针孔”相机模型进行相机标定所获得的相机内参:

  • (f_x, f_y):以像素为单位的焦距
  • (c_x, c_y):主点坐标

它们可以在运行时通过 ZED SDK 的 CameraParameters(C++、Python)数据结构获取。