Basisklasse(n): | Datentyp |
Der Hüllkörper (bounding box) z.B. eines Bereichs von Interesse (ROI) spannt den kleinstmöglichen Quader auf, der den ROI umfasst. Durch den Hüllkörper kann implizit auch der Radius z.B. einer Kugel über den Durchmesser des minimal umschreibenden Quaders spezifiziert werden.
Der Quader, der den Hüllkörper repräsentiert, wird wie folgt definiert:
- Das Ausmaß definiert die Größe des Quaders durch Angabe eines Koordinatentripels d=(x,y,z) für Breite, Höhe und Tiefe des Quaders.
- Die Orientierung des Quaders wird durch die Rotation um den Winkel φ in der xy-Ebene und um den Winkel ρ der yz-Ebene angegeben.
- Die Translation ist ein Koordinatentripel b=(x,y,z), das die relative Position des Hüllkörpers zum zugehörigen ROI oder POI beschreibt.
Die Brechnung der Raumkoordinaten erfolgt dann als affine Abbildung wie folgt:
- Die (untransformierten) 8 Eckkordianten des quaderförmigen Hüllkörpers ergeben sich aus dem Koordinatentripel d=(x,y,z) als (0,0,0), (x,0,0), (0,y,0), (x,y,0), (0,0,z), (x,0,z), (0,y,z) und (x,y,z).
- Die Rotation in der xy-Ebene der Punkte erfolgt durch Linksmultiplikation mit der Matrix für Drehung in der xz-Ebene:
cos(φ) -sin(φ) 0 A_φ = ( sin(φ) cos(φ) 0 ) 0 0 1
- Die Rotation in der yz-Ebene der Punkte erfolgt durch anschließende Linksmultiplikation mit der Matrix für Drehung in der yz-Ebene:
1 0 0 A_ρ = ( 0 cos(ρ) -sin(ρ) ) 0 sin(ρ) cos(ρ)
- Die Translation erfolgt durch abschließende Addition des Koordinatentripels b=(x,y,z).
Hinweis: Aus Performanzgründen sollten die beiden Matrizen A_φ und A_ρ zuerst durch Ausmultiplikation zu einer einzigen Matrix A_r zusammengefasst werden
A_r = A_ρ × A_φ
und anschließend auf die 8 Eckpunkte angewendet werden:
p_space = A_r × p_raw + b