deform op• 資料種類:points × points → deformation
• 呼叫: import fullseye as fs; fs.ledger.tps_fit(src_ctrl, dst_ctrl, lam=0.0)(要直接呼叫實作,import deform3d; deform3d.tps_fit(src_ctrl, dst_ctrl, lam=0.0);從台帳取用則 ops3d.get("tps_fit"))
由控制點對應擬合 3D Thin-Plate-Spline。
將移動端的控制點 src_ctrl 映射到固定端 dst_ctrl 的 TPS 係數,透過對鞍點系統做最小平方(numpy.linalg.lstsq)求解得到。λ=0 時在控制點上嚴格內插(tps_warp(model, src_ctrl) == dst_ctrl),λ>0 時進行平滑。
參數:
src_ctrl: (K,3) 控制點(變形的起點,TPS 的核中心 p_i)。
dst_ctrl: (K,3) 對應的目標點(變形的終點 v_i)。
lam: 正則化係數 λ≥0。將 λ 加到核矩陣 K 的對角線上。越大
變形越平滑(對控制點的擬合越寬鬆)。
回傳值:
model: dict。鍵為
"ctrl" (K,3) 核中心 p_i,
"w" (K,3) 非線性(彎曲)係數,
"a" (4,3) 仿射係數([平移; 線性部分],a[0]=c, a[1:4]=Aᵀ),
"lam" 所用的 λ。
例外:
ValueError: 形狀不一致、控制點數不足、非有限值,或控制點數
超過 TPS_MAX_CTRL(10,000)(稠密的 (K+4)² 系統為 O(K³)。
請先對對應點抽稀再傳入 — TPS 本來的用法是以稀疏控制點
表示平滑的變形)。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• nonrigid_deform — py -3.11 examples_3d/nonrigid_deform.py
deformation 作為輸入)deform)tps_warp · register_nonrigid · register_cpd_rigid
*Provenance: deform3d.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.