Como posso converter coordenadas 3D do mundo em coordenadas 2D de imagem e vice-versa?

Last updated: August 13, 2026

O ZED SDK fornece informações de profundidade e RGB registradas. O pixel de coordenada (u,v) do mapa de profundidade contém o valor de profundidade do pixel de coordenada (u,v) da imagem RGB.

O ZED SDK também fornece a nuvem de pontos, disponibilizando informações 3D e RGB para cada pixel (u,v).

Quais são as fórmulas para obter as coordenadas 3D de um pixel da imagem?

Dadas as coordenadas 2D (u,v) de um pixel, podemos calcular as coordenadas 3D (X,Y,Z) no referencial da imagem (Z para frente, X para a direita, Y para baixo) usando as seguintes fórmulas:

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)

Quais são as fórmulas para obter as coordenadas do pixel de uma coordenada 3D?

Dadas as coordenadas 3D (X,Y,Z) no referencial da imagem (Z para frente, X para a direita, Y para baixo) é possível calcular as coordenadas 2D (u,v) do pixel correspondente usando as seguintes fórmulas:

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

O que são f_x, f_y, c_x, e c_y?

Esses são os parâmetros intrínsecos da câmera obtidos com o procedimento de calibração da câmera, usando o modelo de câmera "pinhole":

  • (f_x, f_y): distâncias focais em unidades de pixel
  • (c_x, c_y): coordenadas do ponto principal

Eles estão disponíveis em tempo de execução na estrutura de dados CameraParameters (C++, Python) do ZED SDK.