two_view op• Datenarten: image2d × image2d → matrix
• Aufruf: import fullseye as fs; fs.ledger.fundamental_8point(pts1, pts2) (die Implementierung direkt: import twoview; twoview.fundamental_8point(pts1, pts2); aus dem Register: ops3d.get("fundamental_8point"))
Schätzt die Fundamentalmatrix F mit dem normalisierten Acht-Punkt-Algorithmus (Rang 2 erzwungen). → F (3,3). Mindestens acht Punkte nötig.
Raises ValueError: Punkte sind nicht (N,2) / nicht endlich / weniger als 8 Punkte / Anzahl der Korrespondenzen stimmt nicht überein.
Ablauf: die Punkte beider Bilder Hartley-normieren (Schwerpunkt in den Ursprung, mittlerer Abstand √2) → den kleinsten Singulärvektor der Koeffizientenmatrix mit 9 Spalten als F nehmen → den 3. Singulärwert auf 0 setzen, um rank-2 zu erzwingen → mit T2ᵀ F T1 denormieren → durch F[2,2] teilen und so normieren (ist dieser Wert nahezu 0, durch die Frobenius-Norm teilen).
• Korrespondenzen sind (N,2) in Pixelkoordinaten (x, y). Konvention: x2ᵀ F x1 = 0 (x1 ist pts1, x2 ist pts2).
• F ist nur bis auf die Skala bestimmt (ein konstantes Vielfaches ergibt dieselbe Geometrie), und auch das Vorzeichen ist nicht eindeutig.
• Kleinste Quadrate mit gleicher Gewichtung aller Punkte; gegen Ausreißer schutzlos. Fehlzuordnungen vor diesem Op entfernen oder die Residuen mit sampson_distance prüfen, aussortieren und neu fitten.
• Bei einer ebenen Szene oder reiner Rotation lassen sich die Korrespondenzen durch 1 Homographie erklären, und F ist nicht eindeutig bestimmt (es wird trotzdem etwas zurückgegeben). Diese Degeneration erkennt recover_pose am Eingang und weist sie ab.
• Deterministisch. Nachgelagert: essential_8point / recover_pose / sampson_distance.
• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen
• 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.
• two_view_pose — py -3.11 examples_3d/two_view_pose.py
matrix als Eingabe)two_view)essential_8point · recover_pose · triangulate · sampson_distance
*Provenance: twoview.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.