symmetry op• Data kinds: points → matrix
• Call: import fullseye as fs; fs.ledger.mirror_plane_from_pairs(landmarks, pairs=None, midline=None) (implementation को सीधे call करना हो तो import shapestats; shapestats.mirror_plane_from_pairs(landmarks, pairs=None, midline=None), registry से लेना हो तो opsshapestat.get("mirror_plane_from_pairs"))
बाएँ/दाएँ के संगत landmark से median (midsagittal) plane निकालता है। → (2, 3) (row 1 = point, row 2 = normal)।
बाएँ-दाएँ जोड़ों (i, j) के मध्यबिंदु सभी midsagittal plane पर स्थित होते हैं। इसलिए उस मध्यबिंदु-समूह पर plane fit कर देना काफ़ी है -- मुख्य बात यह है कि plane deformation की मात्रा से स्वतंत्र तय होता है, और यह residual को न्यूनतम करने वाले plane (symmetry3d.detect_reflection_symmetry) से अलग चीज़ है।
★ 2026-09-06 का मापन: 6.4 mm का एक-तरफ़ा deformation डालने पर, residual-optimal plane असली midsagittal plane से 2.92 mm / 1.72 degree हट गया, और asymmetry का 46 % मिटा दिया (gain 0.54)। इस landmark plane से gain 1.03 है। ढूँढना हो तो residual-optimal plane, मात्रा बतानी हो तो यह।
*midline* midline पर स्थित (जोड़ा न बनाने वाले) landmarks के index हैं। देने पर इन्हें मध्यबिंदु-समूह में जोड़कर plane fit को स्थिर किया जाता है।
pairs=None पहले आधे को दूसरे आधे से जोड़ने की परंपरा है (i और i + N//2)। morphometrics में सभी बाएँ landmarks पहले और फिर दाएँ उसी क्रम में रखने वाला storage format आम है, इसलिए यह उसी के अनुसार है। points की संख्या विषम हो तो reject किया जाता है -- आधे में न बँटने वाले क्रम को चुपचाप काटने पर हर जोड़ा 1 से खिसक जाता है और सभी के चिह्न उलट जाते हैं।
• 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
matrix को input के रूप में लेते हैं)—
symmetry)*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.