procrustes_fit — SHAPESTAT 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"))

Usage

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].

Detailed usage guide

• shape_statistics family guide

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• 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

Ops the type connects to (they accept matrix as input)

—

Same category (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.