procrustes op• Datenarten: points × points → points
• Aufruf: import fullseye as fs; fs.ledger.procrustes_align(source, target, scaling: 'bool' = True, reflection: 'bool' = False) (die Implementierung direkt: import shapestats; shapestats.procrustes_align(source, target, scaling: 'bool' = True, reflection: 'bool' = False); aus dem Register: opsshapestat.get("procrustes_align"))
Punkte von *source*, auf *target* überlagert. → (N, 3) (Anwendung von procrustes_fit).
Berechnet M = procrustes_fit(source, target, scaling, reflection) und gibt source @ M[:3, :3].T + M[:3, 3] zurück. Die Transformation ist eine Ähnlichkeitstransformation aus Schwerpunktabgleich + Drehung per SVD (+ optional Skalierung), und sie setzt voraus, dass die i-ten Punkte einander entsprechen. Punktmengen ohne Korrespondenz lösen keine Ausnahme aus, sondern ergeben eine bedeutungslose Anordnung (in dem Fall eine Registrierung der ICP-Familie verwenden).
• source, target: (N, 3), gleiches N, endlich. Auch N = 1 geht durch (nur Verschiebung).
• scaling=True: absorbiert auch Größenunterschiede. False ergibt eine Starrkörpertransformation. Sind alle Punkte von source identisch (Ausdehnung 0), bleibt die Skalierung 1.
• reflection=False (Standard): erzwingt det(R) = +1. True erlaubt auch Spiegelbilder -- bei der Messung von Links-rechts-Asymmetrie verschwände diese dadurch, daher normalerweise beim Standard bleiben.
• Rückgabewert: (N, 3) float64. Für das Residuum als Zahl procrustes_distance, für die Transformationsmatrix selbst procrustes_fit.
• Fehler: ValueError (Form nicht (N, 3), N stimmt nicht überein, nicht endlich).
Um viele Formen gleichzeitig auszurichten: generalized_procrustes.
• Leitfaden zur Familie shape_statistics
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py
points als Eingabe)shape_perturb · procrustes_fit · procrustes_distance · shape_project · shape_mahalanobis · mirror_plane_from_pairs · landmark_asymmetry · signed_surface_distance
procrustes)procrustes_fit · procrustes_distance · generalized_procrustes · shape_mean
*Provenance: shapestats.py — SHAPESTAT Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.