Я учу себя python и пытаюсь создать простую программу для распознавания букв по изображению. Буквы не в форме предложения или абзаца. Я пытаюсь сделать это, используя cv2 + pytesseract для обнаружения, но я просто не могу заставить его работать надежно. Я начинаю подозревать, что использую не тот инструмент для этой работы, но больше ничего не могу мне помочь.
Это мое контрольное изображение с буквами, которые я хочу извлечь:
В идеале я хотел бы получить букву, а также координаты каждой буквы (ограничивающий прямоугольник). Я смог применить маску и порог к изображению, чтобы получить:
Но я застрял в том, что Pytesseract не может достоверно дайте мне письма индивидуально или даже правильно. Вот мой вывод на консоль ...
$ py main.py --image test.png
D
C UL
UO
Код, который я использую, просто берет черно-белое текстовое изображение и запускает его через pytesseract. Я попытался поиграть с флагом --psm
, но, поскольку текст имеет странную форму, мне не повезло.
text = pytesseract.image_to_string(Image.open(filename), config='-l eng --psm 11')
os.remove(filename)
print(text)