procrustes_align — SHAPESTAT 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।

उपयोग की विस्तृत guide

• shape_statistics family guide

संदर्भ (sample data, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py

वे अगले ops जिनसे type जुड़ता है (points को input के रूप में लेते हैं)

shape_perturb · procrustes_fit · procrustes_distance · shape_project · shape_mahalanobis · mirror_plane_from_pairs · landmark_asymmetry · signed_surface_distance

इसी category के (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.