deviation oppoints × points → signalimport fullseye as fs; fs.ledger.signed_surface_distance(query, surface, surface_normals=None, k: 'int' = 1) (実装を直接呼ぶなら import shapestats; shapestats.signed_surface_distance(query, surface, surface_normals=None, k: 'int' = 1)、台帳から引くなら opsshapestat.get("signed_surface_distance"))問い合わせ点から面までの符号つき距離。→ (N,)。
符号は面の法線から決める(外側が正)。1-D の輪郭には
profileops.profile_deviation があるのに 3-D に相当が無かった、というのが
2026-09-06 に PoC が出した穴。
法線を省くと :func:normals_orient.estimate_oriented_normals で推定する
—— 向き付きでなければ符号が点ごとにばらつく(素の PCA 法線は符号が任意で、
回転すると 4 割が裏返る。pointcloud.fpfh が踏んだのと同じ穴)。
k は符号を決めるときに使う最近傍の数。1 だと最近傍 1 点の法線に賭ける
ことになり、雑音のある面では符号が飛ぶ。2 以上にすると距離で重みを付けた
平均の向きで決める(距離そのものは最近傍のまま)。
py -3.11 examples/shapestat_landmark_tour.pysignal を入力に取れる)deviation)—
Provenance: shapestats.py — SHAPESTAT operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.