tps_fit — 3D 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"))

Verwendung

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

Referenzen (Beispieldaten, Literatur)

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

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• nonrigid_deform — py -3.11 examples_3d/nonrigid_deform.py

Typkompatible Folge-Operatoren (nehmen deformation als Eingabe)

fuse_to_voxel · tps_warp

Gleiche Kategorie (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.