curvature oppoints → normalsimport fullseye as fs; fs.ledger.estimate_normals(points, k=25) (実装を直接呼ぶなら import curvature3d; curvature3d.estimate_normals(points, k=25)、台帳から引くなら ops3d.get("estimate_normals"))外向き(近傍重心から離れる)に統一した点群法線。→ (N,3)。
手順(各点、Python ループ): cKDTree で自身を含む k+1 近傍(k は N-1 に切り詰め)を取り、クエリ点を原点にした近傍座標の散布行列 local.T @ local の最小固有ベクトルを法線にする(単位長)。向きは「近傍重心との内積が正なら反転」= 近傍重心から離れる側に揃える。
(0, 0, 1) を返す(推定していない)。orient_normals に通すか、最初から estimate_oriented_normals を使う。organized 深度画像なら normals_from_depth が視点向きで速い。k 既定 25。決定論的。principal_curvatures と同じ計算を通る(法線推定にも二次曲面フィットまで走る)ので、点数が多いと遅い。py -3.11 examples_3d/cylinder_axis_metrology.pypy -3.11 examples_3d/feature_register.pypy -3.11 examples_3d/oriented_normals.pynormals を入力に取れる)icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · reflect · refract · normal_consistency · ransac_cylinder
curvature)principal_curvatures · mean_curvature · gaussian_curvature · shape_index
Provenance: curvature3d.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.