symmetry op• Data kinds: points → signal
• Call: import fullseye as fs; fs.ledger.landmark_asymmetry(landmarks, pairs=None, plane=None) (to call the implementation directly, import shapestats; shapestats.landmark_asymmetry(landmarks, pairs=None, plane=None); from the registry, opsshapestat.get("landmark_asymmetry"))
Signed asymmetry for each left/right pair. → (M,).
For each pair, one point is mirrored across the plane and compared with the other, and the difference along the plane normal is returned. The sign is "positive if the right is outside" (mirror_plane_from_pairs orients the normal that way). It is not collapsed into an absolute value -- which side, left or right, protrudes means different things in clinical practice and in inspection.
pairs=None / plane=None both use the same defaults as mirror_plane_from_pairs (first-half/second-half pairs, and the midsagittal plane derived from those pairs). If the plane is omitted, the plane itself is determined from the same pairs, so "the deviation from the plane is measured with the material that determined the plane" -- the left-right difference can still be measured (by definition the midpoint leans to neither side), but if the plane can be determined from another source of information, passing it is stronger.
• shape_statistics family guide
• 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.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py
signal as input)symmetry)*Provenance: shapestats.py — SHAPESTAT 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.