Предварительная обработка изображения перед распознаванием текста с помощью Tesseract - PullRequest
0 голосов
/ 04 августа 2020

У меня есть отсканированная страница, которую я пытаюсь определить и проанализировать числа на изображении (строка за строкой). Для этого я использую Python Pytessarect со следующим кодом:

img = cv2.imread('image.jpg',0)
ret,thresh1 = cv2.threshold(img,110,255,cv2.THRESH_TOZERO)
scan_config = r'--oem 3 --psm 6'
extracted_text = pytesseract.image_to_string(thresh1, config=scan_config)

input image.jpg:

input image.jpg

К сожалению, результат неудовлетворительный, потому что, как вы можете видеть, цифры в 4-м столбце частично стерты (человеческий глаз может идентифицировать цифры, но пороговый алгоритм делает это еще хуже):

006442000180
006354924010
005900000461
062891556156
006*3*00000261
006900000261

У кого-то есть представление, как предварительно обработать изображение, чтобы алгоритм смог идентифицировать даже партии стертых цифр? Кстати, второй аргумент пороговой функции жестко запрограммирован (110), и он, вероятно, не будет соответствовать каждому изображению, это зависит от качества фотографии, есть ли способ динамически генерировать значение или использовать альтернативу пороговый подход (возможно, с использованием фильтров OpenCV)?

1 Ответ

0 голосов
/ 04 августа 2020
tesseract PzCox.png - --dpi 72 --psm 6

создать это с помощью (Engli sh) model best :

006442000180
006354924010
005300000461
062891556156
006300000261
006300000261
...