estimate_oriented_normals — 3D normals_orient op

• Datenarten: points → normals

• Aufruf: import fullseye as fs; fs.ledger.estimate_oriented_normals(points, k: 'int' = 20, seed_dir=None) -> 'np.ndarray' (die Implementierung direkt: import normals_orient; normals_orient.estimate_oriented_normals(points, k: 'int' = 20, seed_dir=None) -> 'np.ndarray'; aus dem Register: ops3d.get("estimate_oriented_normals"))

Verwendung

PCA-Normalenschätzung kombiniert mit Hoppes globaler Orientierung. → orientierte Einheitsnormalen (N,3).

Führt estimate_normals (Orientierung unbestimmt) → orient_normals (MST-Ausbreitung) aus. Bei einer geschlossenen Fläche zeigen alle Punkte nach außen, bei einer Ebene richten sich alle Punkte auf dieselbe Hemisphäre aus. Übergibt man die erhaltenen Normalen an curvature3d.shape_index, ergibt sich das korrekte konkav/konvex-Vorzeichen.

Args:

points: (N,3)-Punktwolke.

k: Anzahl der PCA-Nachbarn und der kNN-Graph-Nachbarn (gemeinsam).

seed_dir: globale Referenzorientierung (3,). Bei None vom Schwerpunkt nach außen.

Returns:

(N,3) global konsistente, orientierte Einheitsnormalen.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• oriented_normals — py -3.11 examples_3d/oriented_normals.py

Typkompatible Folge-Operatoren (nehmen normals als Eingabe)

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

Gleiche Kategorie (normals_orient)

orient_normals


*Provenance: normals_orient.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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