match_pose op• Data kinds: points → axes
• Call: import fullseye as fs; fs.ledger.moment_axes(points, weights=None) (to call the implementation directly, import match3d; match3d.moment_axes(points, weights=None); from the registry, ops3d.get("moment_axes"))
• GPU: none (CPU reference implementation only)
The centroid and principal axes (the eigenvectors of the inertia tensor) of a point set or weighted points. The basis of pose estimation.
Return value (centroid(3,), axes(3,3) columns=main axes, eigvals(3,)). Eigenvalue descending order. Used for rotation normalization.
Definition: Normalize w to a sum of 1, centroid c = Σ w p, scatter matrix C = Σ w (p−c)(p−c)ᵀ (covariance. The inertia tensor tr(C)I − C and the eigenvectors are common, but the order of the eigenvalues is reversed) by eigh. Disassemble. axes[:, i] is the principal axis of the i-th largest eigenvalue (in descending order). Eigenvalue is variance (length²).
• The signs of the eigenvectors are arbitrary, and axes can be left-handed (det=−1) (match_pca sets the third axis
(Inverted to make it right-handed).
• weights is length N. The sum of 0 is NaN when divided by 0 (no exception occurs). A score of 0 is explicitly a ValueError.
• If the principal axis is degenerate (such as a sphere), the direction of the axis is indeterminate.
Later: match_pca, obb (directed bbox), rotation to canonical attitude.
Empty input (points of 0 elements) results in a ValueError.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• itokawa_pose_canonical — py -3.11 examples_3d/itokawa_pose_canonical.py
axes as input)match_pose)match_phase_3d · match_pca · find_surface_pose · match_logpolar_z
*Provenance: match3d.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.