Comment puis-je convertir des coordonnées 3D du monde en coordonnées d’image 2D et vice versa ?

Last updated: August 13, 2026

Le ZED SDK fournit des informations de profondeur et RVB enregistrées. Le pixel de coordonnées (u,v) de la carte de profondeur contient la valeur de profondeur du pixel de coordonnées (u,v) de l’image RVB.

Le ZED SDK fournit également le nuage de points, qui fournit des informations 3D et RVB pour chaque pixel (u,v).

Quelles sont les formules pour obtenir les coordonnées 3D d’un pixel de l’image ?

Étant donné les coordonnées 2D (u,v) d’un pixel, nous pouvons calculer les coordonnées 3D (X,Y,Z) dans le repère de l’image (Z vers l’avant, X vers la droite, Y vers le bas) en utilisant les formules suivantes :

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)

Quelles sont les formules pour obtenir les coordonnées du pixel correspondant à une coordonnée 3D ?

Étant donné les coordonnées 3D (X,Y,Z) dans le repère de l’image (Z vers l’avant, X vers la droite, Y vers le bas) il est possible de calculer les coordonnées 2D (u,v) du pixel correspondant en utilisant les formules suivantes :

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

Que sont f_x, f_y, c_x, et c_y ?

Il s’agit des paramètres intrinsèques de la caméra obtenus lors de la procédure de calibration de la caméra, à l’aide du modèle de caméra « sténopé » :

  • (f_x, f_y) : distances focales en unités de pixel
  • (c_x, c_y) : coordonnées du point principal

Elles sont disponibles à l’exécution dans la structure de données CameraParameters (C++, Python) du ZED SDK.