render_symbol — SYMBOL symbol_capture op

• Data kinds: table → image2d

• Call: import fullseye as fs; fs.ledger.render_symbol(symbol, module_px=4.0, *, quiet=None, bar_height=None, rotate_deg=0.0, tilt_deg=0.0, tilt_axis_deg=0.0, distance_ratio=10.0, offset_px=(0.0, 0.0), ink_gain=0.0, dot=None, dark=0.05, light=0.85, margin_modules=2.0, supersample=4, return_geometry=False) (implementation को सीधे call करना हो तो import symrender; symrender.render_symbol(symbol, module_px=4.0, *, quiet=None, bar_height=None, rotate_deg=0.0, tilt_deg=0.0, tilt_axis_deg=0.0, distance_ratio=10.0, offset_px=(0.0, 0.0), ink_gain=0.0, dot=None, dark=0.05, light=0.85, margin_modules=2.0, supersample=4, return_geometry=False), registry से लेना हो तो opssymbol.get("render_symbol"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

symbol (1-D widths या 2-D module grid) को एक plane की reflectance image के रूप में render करता है (image2d)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Render a symbol as the reflectance image a pinhole camera sees. module_px is the module (X dimension) size in pixels at the symbol centre; rotate_deg turns the symbol in its plane (counter-clockwise on screen), tilt_deg tilts the plane about an in-plane axis at tilt_axis_deg (perspective; the camera sits distance_ratio symbol sizes away, so 10 means mild keystone). ink_gain (modules) widens dark areas (bar width gain, > 0) or narrows them (< 0); dot draws 2-D dark modules as discs of that diameter (modules). Reflectances are dark (ink) and light (substrate); each pixel is the mean of supersample² point samples (area coverage). The canvas holds the symbol, its quiet zone (quiet modules; default 4 for QR and raw grids, 2 for the table from dm_encode unless the table says otherwise; for 1-D the table's own quiet zones and quiet is the margin above and below the bars) and a further margin_modules of substrate.

return_geometry=True returns a table instead: image, homography (plane [u, v, 1] in modules → [col, row, w]), plane_size (modules), module_px.

空の入力(モジュール格子が 0 行)は ValueError。拒否(ValueError): 表に modules も edges も無い、module_px <= 0.5、dark >= light、反射率が [0, 1] の外、|tilt_deg| >= 80、|ink_gain| > 0.9、supersample が 1..16 の外、キャンバスが 4000 画素を超える。

उपयोग की विस्तृत guide

• symbol_reading family guide

संदर्भ (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_symbol_package_1d — py -3.11 examples/poc_symbol_package_1d.py

• poc_symbol_part_dpm — py -3.11 examples/poc_symbol_part_dpm.py

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

barcode_scan_profiles · read_barcode1d · qr_locate · qr_sample · qr_read · dm_locate · dm_sample · dm_read

इसी category के (symbol_capture)

capture_degrade


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

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