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.