depth_to_organized_points — 3D range_image op

• Datenarten: depth → pointmap

• Aufruf: import fullseye as fs; fs.ledger.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None) (die Implementierung direkt: import range_image; range_image.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None); aus dem Register: ops3d.get("depth_to_organized_points"))

Verwendung

Ein organisiertes Tiefenbild → gitterausgerichtete 3-D-Punkte (H,W,3).

Mit fx,fy perspektivische Rückprojektion P=((u-cx)/fx*d, (v-cy)/fy*d, d). Ohne Angabe orthographisch (P=(x,y,depth), Gitterabstand 1).

u ist die Spaltennummer (0..W-1), v die Zeilennummer (0..H-1). fx und fy sind Brennweiten in Pixeln, cx und cy der Hauptpunkt, standardmäßig die Bildmitte ((W-1)/2, (H-1)/2). Ist fx oder fy auch nur eines None, wird der orthographische Modus verwendet und cx und cy werden ignoriert. Im orthographischen Modus sind x, y die Pixelkoordinaten selbst; zu beachten ist also, dass die Tiefeneinheit (mm usw.) und die Einheit von x, y (Pixel) gemischt sind. Im perspektivischen Modus haben alle 3 Komponenten dieselbe Einheit wie die Tiefe. Tiefe 0 oder NaN breitet sich unverändert aus (Pixel mit 0 fallen im Ursprung x=y=0 zusammen), daher ist das Ausschließen ungültiger Pixel Sache des Aufrufers. Rückgabewert ist float64 (H,W,3); die 3. Achse ist (x, y, z) mit x nach rechts, y nach unten, z in die Tiefe (Bildkoordinatensystem). Es gibt keine Eingabeprüfung; alles außer 2-D scheitert beim Entpacken von d.shape. normals_from_depth verwendet die Ausgabe dieser Funktion intern.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

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

• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen

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)

• range_image — py -3.11 examples_3d/range_image.py

Typkompatible Folge-Operatoren (nehmen pointmap als Eingabe)

fuse_to_voxel · bump_normals_fbm

Gleiche Kategorie (range_image)

normals_from_depth · occlusion_edges · bearing_angle_image


*Provenance: range_image.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.