sampson_distance — 3D two_view op

• Data kinds: image2d × image2d → signal

• Call: import fullseye as fs; fs.ledger.sampson_distance(F, pts1, pts2) (implementation को सीधे call करना हो तो import twoview; twoview.sampson_distance(F, pts1, pts2), registry से लेना हो तो ops3d.get("sampson_distance"))

उपयोग

epipolar constraint की Sampson distance (1st-order geometric error, हर correspondence के लिए)। → (N,)।

Raises ValueError: points (N,2) न हों / non-finite हों / correspondence की संख्या मेल न खाए।

गणना: homogeneous coordinates x1=(u1,v1,1), x2=(u2,v2,1) के साथ (x2ᵀ F x1)² / ((F x1)_0² + (F x1)_1² + (Fᵀ x2)_0² + (Fᵀ x2)_1² + 1e-12)।

• इकाई pixel की 2 घात है (दूरी की 2 घात)। pixels में threshold लगाना हो तो sqrt लें, या threshold को 2 की घात पर ले जाएँ।

• F fundamental_8point की परिपाटी x2ᵀ F x1 = 0 (pts1 → x1, pts2 → x2) का पालन करता है। क्रम बदलना हो तो F का transpose करें।

• denominator में 1e-12 जोड़ा जाता है, इसलिए F=0 पर भी exception नहीं आता और 0 लौटता है (F की जाँच नहीं होती)।

• return value float64 (N,) है। deterministic। (N,2) न होना, non-finite, या points की संख्या में बेमेल ValueError देता है।

• सामान्य उपयोग: fundamental_8point का fit जाँचना, गलत correspondence (बड़े मान) छाँटना, recover_pose से पहले की preprocessing।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• two_view_pose — py -3.11 examples_3d/two_view_pose.py

वे अगले ops जिनसे type जुड़ता है (signal को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (two_view)

fundamental_8point · essential_8point · recover_pose · triangulate


*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.