render op• Datenarten: points → keypoints
• Aufruf: import fullseye as fs; fs.ledger.project_points(points, K, R=None, t=None) (die Implementierung direkt: import match3d; match3d.project_points(points, K, R=None, t=None); aus dem Register: ops3d.get("project_points"))
• Rückgabewert über das Register: fullseye.ledger.project_points(...) liefert nur den Wert des deklarierten Out-Typs keypoints (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.project_points.raw(...) oder rufe match3d.project_points direkt auf.
• Rückgabe der Funktion: (uv (N,2), depth (N,)) → uv
3-D-Punktmenge (N,3) → Bildkoordinaten (u,v) und Tiefe. Lochkamera (die Vorwärtsrichtung von depth_to_points).
K = intrinsische Kameramatrix [[fx,0,cx],[0,fy,cy],[0,0,1]]. R,t geben die extrinsische Pose. Die Beobachtungsabbildung eines Weltmodells.
Projiziert P_cam = R @ P + t (R (3,3), t (3,); None bedeutet Identität / Null) mit u = fx·X/Z + cx, v = fy·Y/Z + cy. Rückgabewert (uv (N,2), depth (N,)): uv[:,0] = u (Spalte), uv[:,1] = v (Zeile), depth ist Z in Kamerakoordinaten (Rohwert vor dem clip; negative Werte bleiben erhalten). K wird mit K[0,0] usw. indiziert, muss also ein numpy-Array sein (eine nested list geht nicht). Z wird vor dem Teilen auf mindestens 1e-6 geclippt, daher werden auch Punkte hinter der Kamera nicht verworfen und ergeben riesige u,v (der Aufrufer entfernt sie mit depth > 0). Auch Punkte außerhalb des Bildes werden zurückgegeben (render_point_depth schneidet sie nach Bereich ab). Es ist die Umkehrung von depth_to_points; depth_to_points(render_point_depth(...)) ist ein Hin- und Rückweg.
• 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.
• pnp_pose_outliers — py -3.11 examples_3d/pnp_pose_outliers.py
• pose_estimation — py -3.11 examples_3d/pose_estimation.py
keypoints als Eingabe)fuse_to_voxel · dlt_pose · pnp_ransac · reprojection_error
render)render_point_depth · render_volume_projection · render_shaded · ambient_occlusion · cast_shadow · phong_shade · matcap_shade · supersample_mesh
*Provenance: match3d.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.