match_pose op• Data kinds: points → axes
• Call: import fullseye as fs; fs.ledger.moment_axes(points, weights=None) (implementation को सीधे call करना हो तो import match3d; match3d.moment_axes(points, weights=None), registry से लेना हो तो ops3d.get("moment_axes"))
point cloud/weighted points का centroid + principal axes (inertia tensor के eigenvectors)। pose estimation का आधार।
Return value (centroid(3,), axes(3,3) column = principal axis, eigvals(3,))। eigenvalue घटते क्रम में। rotation के canonicalisation के लिए उपयोग होता है।
परिभाषा: w को योग 1 पर normalise करके, centroid c = Σ w p, scatter matrix C = Σ w (p−c)(p−c)ᵀ (covariance। inertia tensor tr(C)I − C के साथ eigenvector साझा हैं और eigenvalue का क्रम उलटा है) को eigh से decompose किया जाता है। axes[:, i] i-वें सबसे बड़े eigenvalue का principal axis है (घटते क्रम में)। eigenvalue variance (लंबाई²) हैं।
• eigenvector का sign मनमाना है, और axes left-handed (det=−1) हो सकता है (match_pca 3rd axis को
उलटकर right-handed बनाता है)।
• weights की लंबाई N है। योग 0 होने पर 0 से भाग से NaN (exception नहीं)। 0 point पर विफल होता है (validation नहीं है)।
• principal axis degenerate हों (sphere आदि) तो axis की दिशा अनिश्चित रहती है।
आगे: match_pca, obb (oriented bbox), canonical pose में rotation।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• itokawa_pose_canonical — py -3.11 examples_3d/itokawa_pose_canonical.py
axes को input के रूप में लेते हैं)match_pose)match_phase_3d · match_pca · match_logpolar_z
*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.