public IEnumerable <Result> Results(Tesseract.PageIteratorLevel level) { CheckIfInitialized(); var pageIteratorLevel = GetPageIteratorLevel(level); var iterator = _api.ResultIterator; if (iterator == null) { yield break; } // ReSharper disable once TooWideLocalVariableScope int[] boundingBox; iterator.Begin(); do { boundingBox = iterator.GetBoundingBox(pageIteratorLevel); var result = new Result { Confidence = iterator.Confidence(pageIteratorLevel), Text = iterator.GetUTF8Text(pageIteratorLevel), Box = new Rectangle(boundingBox[0], boundingBox[1], boundingBox[2] - boundingBox[0], boundingBox[3] - boundingBox[1]) }; yield return(result); } while (iterator.Next(pageIteratorLevel)); }
private int GetPageIteratorLevel(Tesseract.PageIteratorLevel level) { switch (level) { case Tesseract.PageIteratorLevel.Block: return(PageIteratorLevel.Block); case Tesseract.PageIteratorLevel.Paragraph: return(PageIteratorLevel.Paragraph); case Tesseract.PageIteratorLevel.Symbol: return(PageIteratorLevel.Symbol); case Tesseract.PageIteratorLevel.Textline: return(PageIteratorLevel.Textline); case Tesseract.PageIteratorLevel.Word: return(PageIteratorLevel.Word); default: return(PageIteratorLevel.Word); } }