text_candidates — TEXT detect op

• Data kinds: matrix → table

• Call: import fullseye as fs; fs.ledger.text_candidates(swt, min_area: 'int' = 8, max_var_ratio: 'float' = 0.5, aspect_range=(0.1, 10.0), max_height: 'int' = 300) (to call the implementation directly, import textregion; textregion.text_candidates(swt, min_area: 'int' = 8, max_var_ratio: 'float' = 0.5, aspect_range=(0.1, 10.0), max_height: 'int' = 300); from the registry, opstext.get("text_candidates"))

Usage

Narrows the connected components of the SWT down to character candidates (width spread, aspect ratio, size).

Rules of Epshtein 2010 §4: the variance of the stroke width within a component is small relative to its mean / the aspect ratio is not extreme / not too large. swt is the swt of swt_map. Returns dict: boxes (N×4 [y0, x0, y1, x1], half-open intervals) / labels / stroke_width (median of each component) / n_components (count before filtering).

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_text_region_truth — py -3.11 examples/poc_text_region_truth.py

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

text_lines

Same category (detect)

—


*Provenance: textregion.py — TEXT 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.