curvature op• 数据种类:points → signal
• 调用: import fullseye as fs; fs.ledger.mean_curvature(points, k=25, normals=None)(要直接调用实现,import curvature3d; curvature3d.mean_curvature(points, k=25, normals=None);从台账取用则 ops3d.get("mean_curvature"))
平均曲率 H=(k1+k2)/2。→ (N,)。依赖朝向的量。
normals(带朝向的参考法线, (N,3))未指定时采用凸侧启发式(开放曲面的凹/凸符号不确定)。传入带朝向的法线后会与全局朝向一致,给出正确的符号。
补充:
• 计算与 principal_curvatures 相同(k+1 邻域的 PCA 法线 + 局部二次曲面拟合),返回 (k1 + k2) / 2。单位为 1/长度。
• 符号采用凸为正的约定,仅在传入 normals 时才对应全局的凹/凸。未指定时开放曲面的 H 始终在凸侧(相当于绝对值)。
• 邻域少于 5 个点的点为 0。k 被截断为 N-1。
• 半径 R 的球为 1/R,圆柱为 1/(2R),平面为 0。鞍点(k1 = -k2)也为 0,但 gaussian_curvature 为负,因此可以区分。
• normals 须为 (N,3) 且各行有限、非零(ValueError)。确定性。
• blas_threads_and_memory — 矩阵分解为何慢 —— BLAS 线程、缓存、内存布局
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• curvature_shape_index — py -3.11 examples_3d/curvature_shape_index.py
• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py
signal 作为输入)curvature)principal_curvatures · gaussian_curvature · shape_index · estimate_normals
*Provenance: curvature3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.