Exemple #1
0
        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);
            }
        }