two_view op• Data kinds: image2d × image2d → matrix
• Call: import fullseye as fs; fs.ledger.fundamental_8point(pts1, pts2) (implementation को सीधे call करना हो तो import twoview; twoview.fundamental_8point(pts1, pts2), registry से लेना हो तो ops3d.get("fundamental_8point"))
normalised 8-point method से fundamental matrix F का अनुमान (rank-2 लागू)। → F (3,3)। कम से कम 8 points आवश्यक।
Raises ValueError: points (N,2) न हों / non-finite हों / 8 points से कम हों / correspondence की संख्या मेल न खाए।
प्रक्रिया: दोनों images के points का Hartley normalisation (centroid को origin पर, औसत दूरी √2) → 9 columns वाले coefficient matrix के सबसे छोटे singular vector को F मानना → तीसरे (3) singular value को 0 करके rank-2 पर मजबूर करना → T2ᵀ F T1 से denormalise → F[2,2] से भाग देकर normalise (यदि वह लगभग 0 हो तो Frobenius norm से भाग)।
• correspondence points, pixel coordinates (x, y) का (N,2) हैं। परिपाटी x2ᵀ F x1 = 0 है (x1 pts1 है, x2 pts2 है)।
• F का scale अनिश्चित है (किसी स्थिरांक से गुणा करने पर भी वही geometry) और उसका चिह्न भी अद्वितीय नहीं है।
• यह सभी points को बराबर उपयोग करने वाला least squares है, outliers के सामने असुरक्षित। गलत correspondence वाले जोड़े इस op से पहले हटाएँ, या sampson_distance से residual देखकर छाँटें और फिर से fit करें।
• planar scene या pure rotation में correspondence points को 1 homography से समझाया जा सकता है और F अद्वितीय रूप से तय नहीं होता (फिर भी कुछ न कुछ लौटता है)। इस degeneracy को recover_pose प्रवेश पर पकड़कर reject करता है।
• deterministic। आगे के चरण essential_8point / recover_pose / sampson_distance हैं।
• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• two_view_pose — py -3.11 examples_3d/two_view_pose.py
matrix को input के रूप में लेते हैं)two_view)essential_8point · recover_pose · triangulate · sampson_distance
*Provenance: twoview.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.