reconstruct op• Datenarten: points → mesh
• Aufruf: import fullseye as fs; fs.ledger.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None) (die Implementierung direkt: import recon3d; recon3d.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None); aus dem Register: ops3d.get("poisson_lite"))
Punktmenge (N,3) → ein Oberflächennetz (vertices(V,3), faces(F,3)) — eine leichtgewichtige Screened-Poisson-Näherung.
Splattet die Punktwolke in ein size³-Voxelgitter, baut ein Isoflächenfeld und erzeugt daraus mit marching cubes ein Dreiecks-Mesh. Die Ausgabe-Vertices liegen in denselben Weltkoordinaten wie die Eingabe-Punktwolke (inverse Abbildung aus der bbox). bounds ist die bbox der Punktwolke (+ σ-abhängiges padding).
2 Modi:
• normals is None: Die Belegung (occupancy) wird gaußgeglättet und auf [0,1] normiert, das Innere des bei iso binarisierten Oberflächenbands mit binary_fill_holes gefüllt, erneut geglättet und eine einzelne Außenschale bei iso extrahiert. Ein Belegungsfeld (unsigned) ist innen/außen symmetrisch, daher verläuft die Isofläche einer geglätteten dünnen Schale an 2 Stellen, der inneren und der äußeren Flanke, und wird zur konzentrischen Doppelschale. Durch das Füllen des Inneren wird die Innen/Außen-Symmetrie gebrochen, sodass aus geschlossenen Oberflächenproben (sofern relativ zu Gitter / σ dicht genug) eine einzelne Schale entsteht. Offene Flächen werden nicht gefüllt und bleiben dünne Flächen. Sind die Punkte zu dünn / ist σ klein, kann die Füllung durch Lücken auslaufen und zur Doppelschale entarten (für eine exakte Innen/Außen-Entscheidung normals angeben).
• normals angegeben: Aus der winding number der orientierten Punkte wird ein Innen/Außen-Indikatorfeld gebaut, gaußgeglättet und die Oberfläche bei iso (Standard 0.5) extrahiert. Auch mit reinen Oberflächenproben wird das Innere gefüllt und eine geschlossene Fläche erhalten.
points : array_like (N,3)
Eingabe-Punktwolke.
size : int
Seitenlänge des Voxelgitters (Standard 64). Größer ist feiner, aber O(size³).
sigma : float
Standardabweichung der Gauß-Glättung (in Voxeln, Standard 1.0). Ein padding von ⌈3σ⌉+2 Voxeln wird automatisch reserviert.
iso : float
Isoflächenniveau. Ein Wert auf dem normierten Feld [0,1] (Standard 0.5).
normals : array_like (N,3) or None
Punktnormalen. Wenn angegeben, winding-number-Modus; bei None Belegungsmodus.
vertices : numpy.ndarray (V,3) float64
Vertices in Weltkoordinaten.
faces : numpy.ndarray (F,3) int64
Vertex-Indizes der Dreiecke (beziehen sich auf vertices).
ValueError
Zu wenige Punkte (<4), size zu klein, Belegungs- / Indikatorfeld zu dünn, sodass iso außerhalb des Wertebereichs liegt, usw.
• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)
• 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.
• poisson_surface_recon — py -3.11 examples_3d/poisson_surface_recon.py
mesh als Eingabe)mesh_to_voxel · mesh_to_points · to_points · fuse_to_voxel · ambient_occlusion · cast_shadow · supersample_mesh · render_beauty
reconstruct)alpha_shape_mesh · alpha_shape_boundary · estimate_alpha
*Provenance: recon3d.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.