Почему 2 символа возвращаются сюда? Tesserocr в Python - PullRequest
0 голосов
/ 02 ноября 2018

Я работаю с модулем testhon tesserocr, пытаясь распознать односимвольные изображения. Мне также нужно значение достоверности при распознавании, и похоже, что tesserocr - единственная оболочка Python, которая может сделать это.

Ниже приведен код, который я использую, это адаптация основного примера на PyPI.

from PIL import Image
from tesserocr import PyTessBaseAPI, PSM

image = Image.open('/path/to/e.jpg')

def ocr(img):
    with PyTessBaseAPI(psm=PSM.SINGLE_CHAR) as api:
        api.SetImage(img)
        api.SetVariable('tessedit_char_whitelist','ABCDEFGHIJKLMNOPQRSTUVWXYZ01234556789')

        ocrResult = api.GetUTF8Text()
        conf = api.MeanTextConf()

    return [ocrResult, conf]

print(ocr(image))
print(ocr(image.rotate(90)))

Изображение состоит из буквы E. Этот код возвращает:

['E\n', 47]
['WJ\n', 66]

Таким образом, он хорошо распознает исходное изображение, но когда я поворачиваю его на 90 градусов, он возвращает «WJ» (с большей уверенностью, но пока не будем об этом беспокоиться), почему возвращаются 2 символа? Я указал psm = PSM.SINGLE_CHAR.

Без указания режима сегментации страницы эта функция возвращает изображение как ничего, поэтому она должна что-то делать, я просто не уверена, почему она возвращает 2 символа.

Заранее спасибо

...