freeform op• 資料種類:points → bspline_curve
• 呼叫: import fullseye as fs; fs.ledger.fit_bspline_curve(points, smooth=0.0, k=3, nest=None)(要直接呼叫實作,import bspline_surf; bspline_surf.fit_bspline_curve(points, smooth=0.0, k=3, nest=None);從台帳取用則 ops3d.get("fit_bspline_curve"))
對有序點列 (M,D) 擬合 B 雲形線曲線(splprep,參數化)。
將接縫/邊緣/量測探頭軌跡等「排列順序有意義」的點列還原為平滑的參數曲線 r(u), u∈[0,1]。與 z=f(x,y) 不同,也能表示多值(折返、迴圈)的形狀。
points : array_like, shape (M, D)
有序頂點。D=3 為典型(3D 曲線),但允許 2D 以上。
smooth : float
平滑係數 s。0.0 時通過全部點(內插),越大越平滑。
k : int
次數(預設 3=三次)。點數少於 k+1 時自動降低。
nest : int or None
節點數上限(原樣傳給 splprep)。None 為自動。
tck : tuple
(t, c, k)。傳給 eval_bspline_curve。
ValueError
點數少於 2、維度不一致、非有限值,或因重複/退化 splprep
無法回傳曲線時。
補充:
• 預設 smooth=0.0 為內插(通過全部點)。與曲面側的預設(由點數得出的自動值)不同,因此含雜訊的點列請明確給出 smooth。參數 u 為 splprep 的預設(與弦長成比例並正規化到 [0,1])。
• 次數 k 在 k >= m 時靜默降為 m-1(2 點則為直線)。
• 存在連續重複點時 splprep 會失敗並成為 ValueError。請在前級去除重複,或用 resample_uniform 等間距化。
• 回傳的 tck 是 [t, c, k] 的 list(c 是 D 個係數陣列的串列)。傳給 eval_bspline_curve。不作為封閉曲線處理(端點保持開放)。
• 決定性(無亂數)。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• bspline_freeform — py -3.11 examples_3d/bspline_freeform.py
bspline_curve 作為輸入)fuse_to_voxel · eval_bspline_curve
freeform)fit_bspline_surface · eval_bspline_surface · surface_residual · eval_bspline_curve
*Provenance: bspline_surf.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.