procrustes op• Data kinds: points × points → points
• Call: import fullseye as fs; fs.ledger.procrustes_align(source, target, scaling: 'bool' = True, reflection: 'bool' = False) (implementation को सीधे call करना हो तो import shapestats; shapestats.procrustes_align(source, target, scaling: 'bool' = True, reflection: 'bool' = False), registry से लेना हो तो opsshapestat.get("procrustes_align"))
*target* पर बैठाए गए *source* के point। → (N, 3) (procrustes_fit लागू करता है)।
M = procrustes_fit(source, target, scaling, reflection) निकालकर source @ M[:3, :3].T + M[:3, 3] लौटाता है। transform centroid मिलान + SVD से rotation (+ वैकल्पिक scale) का similarity transform है, और यह मानता है कि i-वें points एक-दूसरे से मेल खाते हैं । बिना correspondence वाले point sets देने पर भी exception नहीं उठता और अर्थहीन placement लौटता है (उस स्थिति में ICP परिवार का registration इस्तेमाल करें)।
• source, target: (N, 3), समान N, finite। N = 1 भी चलता है (केवल translation)।
• scaling=True: आकार का अंतर भी सोख लेता है। False होने पर rigid body transform। source के सभी points एक जैसे हों (फैलाव 0) तो scale 1 ही रहता है।
• reflection=False (default): det(R) = +1 लागू करता है। True करने पर mirror image भी स्वीकार होती है -- बाएँ-दाएँ asymmetry मापने के उपयोग में वह गायब हो जाती है, इसलिए सामान्यतः default ही रखें।
• return value: (N, 3) float64। residual संख्या में चाहिए तो procrustes_distance, transform matrix स्वयं चाहिए तो procrustes_fit।
• विफलता: ValueError (shape (N, 3) नहीं, N मेल नहीं खाता, non-finite)।
कई shapes को एक साथ align करने के लिए generalized_procrustes।
• shape_statistics family guide
• 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 के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py
points को input के रूप में लेते हैं)shape_perturb · procrustes_fit · procrustes_distance · shape_project · shape_mahalanobis · mirror_plane_from_pairs · landmark_asymmetry · signed_surface_distance
procrustes)procrustes_fit · procrustes_distance · generalized_procrustes · shape_mean
*Provenance: shapestats.py — SHAPESTAT operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.