fit_bspline_curve — 3D freeform op

資料種類:pointsbspline_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) と違い多価

(折り返し・ループ)な形も表せる。

Parameters

----------

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 で自動。

Returns

-------

tck : tuple

`(t, c, k)`。eval_bspline_curve に渡す。

Raises

------

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