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.