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.