grade_barcode_profile — SYMBOL print_quality op

• Data kinds: signal → table

• Call: import fullseye as fs; fs.ledger.grade_barcode_profile(profile, symbologies=None, *, quiet_zone_x=None) (implementation को सीधे call करना हो तो import symgrade; symgrade.grade_barcode_profile(profile, symbologies=None, *, quiet_zone_x=None), registry से लेना हो तो opssymbol.get("grade_barcode_profile"))

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

उपयोग

एक scan line (1-D reflectance profile) के print-quality parameters और grades लौटाता है (table)।

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

Grade one scan reflectance profile. The profile must cover the symbol and its quiet zones. Quantities (reflectances in [0, 1]):

• r_max / r_min: highest / lowest reflectance over the profile.

• symbol_contrast SC = r_max − r_min; global threshold GT = r_min + SC / 2.

• elements = runs between GT crossings; a space's reflectance is its maximum, a bar's its minimum; the quiet zones are the outer spaces.

• edge_contrast_min ECmin = min over adjacent element pairs of |Rs − Rb|.

• modulation MOD = ECmin / SC.

• defects = ERNmax / SC, where an element's reflectance non-uniformity ERN is the deepest valley trapped between two higher samples inside a space (or the highest peak trapped inside a bar) — monotone edges contribute nothing.

• decodability = the smallest per-character decode margin returned by the reference decode (barcode1d.decode_barcode_profile at GT): for the edge-to-similar-edge symbologies (EAN/UPC, Code 128) the margin of each similar-edge sum from its decision boundary (half a module), for the two-width ones (Code 39, ITF) the margin of the narrowest wide / widest narrow element from the mid threshold, both scaled to 1 = ideal, 0 = on the boundary.

• decode (bool), quiet_zone_ok (both light zones at least the symbology's quiet zone, or quiet_zone_x X, wide), r_min_ok (Rmin ≤ 0.5 Rmax), edge_contrast_ok (ECmin ≥ 0.15).

Grades 4..0 per parameter (grades), profile_grade = the minimum, and limiting = the parameters at that minimum. A profile that does not decode is graded 0 with decode = False (the other quantities are still reported when the profile has edges).

空の入力(16 標本未満)は ValueError。拒否(ValueError): 1-D でない、非有限、quiet_zone_x が負。平らな走査線(縁が無い)は SC = 0 で profile_grade = 0(読めない、と数える)。

उपयोग की विस्तृत 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

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

render_symbol · symbol_read_trials · symbol_read_pod · ocr_classify · ocr_read_line · ocr_read_trials

इसी category के (print_quality)

grade_barcode1d · grade_datacode2d


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

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