procrustes op• Data kinds: points × points → matrix
• Call: import fullseye as fs; fs.ledger.procrustes_fit(source, target, scaling: 'bool' = True, reflection: 'bool' = False) (to call the implementation directly, import shapestats; shapestats.procrustes_fit(source, target, scaling: 'bool' = True, reflection: 'bool' = False); from the registry, opsshapestat.get("procrustes_fit"))
Similarity transform that superimposes *source* onto *target*. → (4, 4) homogeneous matrix.
It assumes the points are in correspondence (the i-th points are at the same anatomical position). For point sets without correspondence no exception is raised and a meaningless transform is returned -- whether there is correspondence cannot be seen from this function. Without correspondence, use the ICP family (registration).
With scaling=True size differences are also absorbed. reflection=False (default) enforces det(R) = +1 -- if it were allowed, a left-handed individual would overlap a right-handed mean, and left-right asymmetry, the very thing you want to measure, would vanish.
The matrix is in homogeneous coordinates, oriented as target ~ source @ M[:3,:3].T + M[:3,3].
• 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.
• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py
• poc_die_tilt_tsv_overlay — py -3.11 examples/poc_die_tilt_tsv_overlay.py
• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py
matrix as input)—
procrustes)procrustes_align · procrustes_distance · generalized_procrustes · shape_mean
*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.