capture
Adaptive blue sampling → if no blue found ⇒ grayscale fallback → local contrast → bold → auto row split → OCR