qr_decode_modules — SYMBOL datacode2d op

• Data kinds: matrix → table

• Call: import fullseye as fs; fs.ledger.qr_decode_modules(modules) -> 'dict' (to call the implementation directly, import qrsym; qrsym.qr_decode_modules(modules) -> 'dict'; from the registry, opssymbol.get("qr_decode_modules"))

• GPU: none (CPU reference implementation only)

Usage

Decode a QR module grid (no quiet zone, 1 = dark) and return the corrected codewords per block (table).

> The detailed description below is the original text — the summary and the headings are translated.

Decode an (N,N) 0/1 module grid (1 = dark, no quiet zone). The transposed (mirrored) grid is tried when the direct read fails.

Returns a dict with text, version, ec_level, mask, mode, modes, n_corrected, block_corrected, block_ec, block_capacity (= floor((n_ec - p)/2)), block_p (誤復号保護語 / misdecode-protection codewords), blocks, mirrored, format_distance and codeword_index. In the mirrored case codeword_index refers to the transposed (read) grid; transpose it to index the input grid.

Raises QRDecodeError when neither orientation decodes.

Detailed usage guide

• symbol_reading family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_symbol_part_dpm — py -3.11 examples/poc_symbol_part_dpm.py

Ops the type connects to (they accept table as input)

render_symbol · symbol_read_trials · symbol_read_pod · ocr_classify · ocr_read_line · ocr_read_trials

Same category (datacode2d)

qr_encode · qr_locate · qr_sample · qr_read · dm_encode · dm_decode_modules · dm_locate · dm_sample


*Provenance: qrsym.py — SYMBOL operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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