estimate_oriented_normals — 3D normals_orient op

• Data kinds: points → normals

• Call: import fullseye as fs; fs.ledger.estimate_oriented_normals(points, k: 'int' = 20, seed_dir=None) -> 'np.ndarray' (implementation को सीधे call करना हो तो import normals_orient; normals_orient.estimate_oriented_normals(points, k: 'int' = 20, seed_dir=None) -> 'np.ndarray', registry से लेना हो तो ops3d.get("estimate_oriented_normals"))

उपयोग

PCA normal estimation + Hoppe global orientation का संयोजन। → (N,3) oriented unit normals।

estimate_normals (दिशा अनिर्धारित) → orient_normals (MST propagation) से गुज़ारता है। बंद सतह पर सभी points बाहर की ओर, और plane पर सभी points एक ही hemisphere की ओर संरेखित होते हैं। मिले हुए normals को curvature3d.shape_index को देने पर अवतल/उत्तल का sign सही निकलता है।

Args:

points: (N,3) point cloud।

k: PCA neighbours और kNN graph neighbours की संख्या (साझा)।

seed_dir: global reference दिशा (3,)। None होने पर centroid से बाहर की ओर।

Returns:

(N,3) globally consistent, दिशा-निर्धारित unit normals।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)

संदर्भ (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 के स्रोत।

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

• oriented_normals — py -3.11 examples_3d/oriented_normals.py

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

icp_point2plane · compute_fpfh · shot_descriptor · fuse_to_voxel · reflect · refract · normal_consistency · ransac_cylinder

इसी category के (normals_orient)

orient_normals


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

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