Wie kann ich 3D-Weltkoordinaten in 2D-Bildkoordinaten umwandeln und umgekehrt?

Last updated: August 13, 2026

Das ZED SDK stellt registrierte Tiefen- und RGB-Informationen bereit. Das Pixel mit den Koordinaten (u,v) der Tiefenkarte enthält den Tiefenwert des Pixels mit den Koordinaten (u,v) des RGB-Bildes.

Das ZED SDK stellt außerdem die Punktwolke bereit, die für jedes Pixel (u,v). 3D- und RGB-Informationen liefert.

Welche Formeln werden verwendet, um die 3D-Koordinaten eines Bildpixels zu erhalten?

Ausgehend von den 2D-Koordinaten (u,v) eines Pixels können wir die 3D-Koordinaten (X,Y,Z) im Bildkoordinatensystem (Z nach vorne, X nach rechts, Y nach unten) mithilfe der folgenden Formeln berechnen:

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)

Welche Formeln werden verwendet, um die Pixelkoordinaten einer 3D-Koordinate zu erhalten?

Ausgehend von den 3D-Koordinaten (X,Y,Z) im Bildkoordinatensystem (Z nach vorne, X nach rechts, Y nach unten) ist es möglich, die 2D-Koordinaten (u,v) des entsprechenden Pixels mithilfe der folgenden Formeln zu berechnen:

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

Was sind f_x, f_y, c_x, und c_y?

Dies sind die intrinsischen Kameraparameter, die mithilfe des Kamerakalibrierungsverfahrens unter Verwendung des „Lochkamera“-Kameramodells ermittelt werden:

  • (f_x, f_y): Brennweiten in Pixeleinheiten
  • (c_x, c_y): Koordinaten des Hauptpunkts

Sie sind zur Laufzeit in der Datenstruktur CameraParameters (C++, Python) des ZED SDK verfügbar.