marker_direction — DRIVE balltrack op

• Data kinds: कोई नहीं → signal (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.marker_direction(marker_uv, center_uv, radius_px, K=None) -> 'np.ndarray' (implementation को सीधे call करना हो तो import balltrack; balltrack.marker_direction(marker_uv, center_uv, radius_px, K=None) -> 'np.ndarray', registry से लेना हो तो opsdrive.get("marker_direction"))

उपयोग

image में marker की स्थिति (col, row) → गोले पर दिशा (camera frame में unit vector, आगे का गोलार्ध: x दाएँ, y ऊपर, z देखने वाले की ओर)।

K (3, 3) देने पर परिप्रेक्ष्य में सटीक रूप से हल करता है: गोले की कोणीय त्रिज्या α = atan(त्रिज्या px / f) से केंद्र तक की दूरी (त्रिज्या 1 मानकर 1/sin α) और केंद्र की दृष्टि-रेखा निकालता है, पैटर्न पिक्सेलों की दृष्टि-रेखाओं को गोले की सतह से काटता है, और प्रतिच्छेद बिंदुओं के अभिलंब लौटाता है। ★K के बिना वाला रूप चक्रिका को लंबकोणीय प्रक्षेप मानता है और केंद्र से गुज़रने वाली दृष्टि-रेखा को z मानने वाले तंत्र में उत्तर देता है —— यदि गोला प्रकाशीय अक्ष से हटा हो तो पूरा तंत्र घूम जाता है, और गतिमान गोले के वीडियो में दृष्टि-रेखा का परिवर्तन सीधे आभासी घूर्णन बन जाता है (0.6 m दूर 6 m/s से पार करते गोले की दृष्टि-रेखा 1 ms में 0.01 rad घूमती है, जिससे प्रति फ़्रेम 0.15 rad के घूर्णन पर 7 % अतिरिक्त जुड़ गया। 2026-09-30, PoC ㉔ का निकट कैमरा)। K न हो तो पहले जैसा।

संदर्भ (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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

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

• poc_ball_bounce — py -3.11 examples/poc_ball_bounce.py

• poc_table_tennis_bounce — py -3.11 examples/poc_table_tennis_bounce.py

• poc_table_tennis_spin — py -3.11 examples/poc_table_tennis_spin.py

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

flight_vacuum · magnus_lift_coefficient · drag_coefficient_sphere · restitution_from_apexes · restitution_from_intervals · fit_parabola · flight_fit · fit_aero

इसी category के (balltrack)

ball_detect · ball_track · kalman_ca · triangulate_dlt · track_triangulate · bounce_detect · spin_from_markers · spin_from_marker_sequence


*Provenance: balltrack.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.