Я работаю с модулем 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 символа.
Заранее спасибо