deform op• Datenarten: points × points → deformation
• Aufruf: import fullseye as fs; fs.ledger.tps_fit(src_ctrl, dst_ctrl, lam=0.0) (die Implementierung direkt: import deform3d; deform3d.tps_fit(src_ctrl, dst_ctrl, lam=0.0); aus dem Register: ops3d.get("tps_fit"))
Passt einen 3-D-Thin-Plate-Spline aus Kontrollpunktkorrespondenzen an.
Bestimmt die TPS-Koeffizienten, die die beweglichen Kontrollpunkte src_ctrl auf die festen dst_ctrl abbilden, indem das Sattelpunktsystem per kleinster Quadrate (numpy.linalg.lstsq) gelöst wird. Bei λ=0 wird an den Kontrollpunkten exakt interpoliert (tps_warp(model, src_ctrl) == dst_ctrl), bei λ>0 geglättet.
Argumente:
src_ctrl: (K,3) Kontrollpunkte (Startpunkte der Verformung, TPS-Kernelzentren p_i).
dst_ctrl: (K,3) zugehörige Zielpunkte (Endpunkte der Verformung v_i).
lam: Regularisierungskoeffizient λ≥0. λ wird zur Diagonale der Kernelmatrix K addiert. Je größer, desto
glatter die Verformung (die Anpassung an die Kontrollpunkte lockert sich).
Rückgabewert:
model: dict. Schlüssel sind
"ctrl" (K,3) Kernelzentren p_i,
"w" (K,3) nichtlineare (Biege-)Koeffizienten,
"a" (4,3) affine Koeffizienten ([Translation; linearer Teil], a[0]=c, a[1:4]=Aᵀ),
"lam" das verwendete λ.
Ausnahmen:
ValueError: Formabweichung, zu wenige Kontrollpunkte, nicht endliche Werte oder mehr als
TPS_MAX_CTRL (10,000) Kontrollpunkte (das dichte (K+4)²-System ist O(K³).
Korrespondenzen vor der Übergabe ausdünnen -- TPS ist dafür gedacht, eine glatte Verformung
mit spärlichen Kontrollpunkten darzustellen).
• 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.
• nonrigid_deform — py -3.11 examples_3d/nonrigid_deform.py
deformation als Eingabe)deform)tps_warp · register_nonrigid · register_cpd_rigid
*Provenance: deform3d.py — 3D 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.