signed_surface_distance — SHAPESTAT deviation op

• Data kinds: points × points → signal

• Call: import fullseye as fs; fs.ledger.signed_surface_distance(query, surface, surface_normals=None, k: 'int' = 1) (implementation को सीधे call करना हो तो import shapestats; shapestats.signed_surface_distance(query, surface, surface_normals=None, k: 'int' = 1), registry से लेना हो तो opsshapestat.get("signed_surface_distance"))

उपयोग

query point से सतह तक sign सहित दूरी। → (N,)।

चिह्न surface के normal से तय होता है (बाहर धनात्मक)। 1-D contour के लिए profileops.profile_deviation है, पर 3-D में उसका समकक्ष नहीं था -- यही वह gap था जो 2026-09-06 को PoC ने उजागर किया।

normals छोड़ने पर normals_orient.estimate_oriented_normals से estimate किए जाते हैं -- oriented न हों तो चिह्न point-दर-point बिखर जाता है (सादे PCA normals का चिह्न मनमाना होता है, और rotate करने पर 10 में से 4 उलट जाते हैं। वही gap जिसमें pointcloud.fpfh फँसा था)।

k चिह्न तय करने में इस्तेमाल होने वाले nearest neighbours की संख्या है। 1 होने पर सबसे पास के 1 point के normal पर दाँव लगता है, और noisy surface पर चिह्न उछलता है। 2 या अधिक करने पर दूरी से weighted औसत orientation से तय होता है (दूरी स्वयं nearest neighbour वाली ही रहती है)।

उपयोग की विस्तृत guide

• shape_statistics family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_am_thermal_to_ct — py -3.11 examples/poc_am_thermal_to_ct.py

• shapestat_landmark_tour — py -3.11 examples/shapestat_landmark_tour.py

वे अगले ops जिनसे type जुड़ता है (signal को input के रूप में लेते हैं)

shape_reconstruct

इसी category के (deviation)

—


*Provenance: shapestats.py — SHAPESTAT operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.