Phase 7 expands OCR parity beyond the original ReadText and FindText pair without changing the current sikuli-go OCR backend architecture.
The API now exposes richer OCR traversal helpers across the image-backed and live-screen surfaces:
Finder.CollectWordsFinder.CollectLinesRegion.CollectWordsRegion.CollectLinesLiveRegion.CollectWordsLiveRegion.CollectLinesScreen.CollectWordsScreen.CollectLinesMatch.CollectWordsMatch.CollectLinesExisting OCR helpers remain unchanged:
ReadTextFindTextThe Go API now uses two stable OCR result values:
OCRWord
OCRLine
[]OCRWordThis keeps the OCR surface predictable for client ports and parity wrappers.
Image-backed helpers return geometry in the source-image coordinate space.
Live helpers capture once per call and then rebind OCR geometry back into the absolute screen or live-region coordinate space. That means:
LiveRegion OCR results are offset into the live region boundsScreen OCR results are offset into the screen boundsMatch OCR results stay bound to the matched live regionOCRParams now flows through the same way for image-backed and live-screen helpers:
FindTextThe live surface does not add a separate OCR protocol. It captures through the runtime, then runs the same finder/OCR helper logic used by image-backed search.
Phase 7 does not add char-level OCR result types.
That is deliberate:
So this phase closes the main SikuliX OCR workflow gap while keeping the existing OCR architecture intact.
OCR-heavy ports no longer need to reconstruct common SikuliX text traversal workflows entirely in clients just to iterate words or lines.