moment_axes — 3D match_pose op

• Datenarten: points → axes

• Aufruf: import fullseye as fs; fs.ledger.moment_axes(points, weights=None) (die Implementierung direkt: import match3d; match3d.moment_axes(points, weights=None); aus dem Register: ops3d.get("moment_axes"))

Verwendung

Schwerpunkt und Hauptachsen (die Eigenvektoren des Trägheitstensors) einer Punktmenge oder gewichteter Punkte. Die Grundlage der Posenschätzung.

Liefert (centroid(3,), axes(3,3) Spalten = Hauptachsen, eigvals(3,)). Eigenwerte absteigend. Dient der Kanonisierung der Rotation.

Definition: w wird auf Summe 1 normiert, Schwerpunkt c = Σ w p, die Streumatrix C = Σ w (p−c)(p−c)ᵀ (Kovarianz. Sie teilt die Eigenvektoren mit dem Trägheitstensor tr(C)I − C, die Reihenfolge der Eigenwerte ist umgekehrt) wird mit eigh zerlegt. axes[:, i] ist die Hauptachse des i-größten Eigenwerts (absteigend). Eigenwerte sind Varianzen (Länge²).

• Das Vorzeichen der Eigenvektoren ist beliebig, und axes kann linkshändig sein (det=−1) (match_pca kehrt die 3. Achse

um und macht es rechtshändig).

• weights hat Länge N. Summe 0 ergibt NaN durch Division durch 0 (keine Ausnahme). 0 Punkte schlägt fehl (es gibt keine Validierung).

• Bei entarteten Hauptachsen (Kugel usw.) ist die Achsrichtung unbestimmt.

Nachgelagert: match_pca, obb (orientierte bbox), Rotation in eine kanonische Pose.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• itokawa_pose_canonical — py -3.11 examples_3d/itokawa_pose_canonical.py

Typkompatible Folge-Operatoren (nehmen axes als Eingabe)

fuse_to_voxel

Gleiche Kategorie (match_pose)

match_phase_3d · match_pca · match_logpolar_z


*Provenance: match3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.