Как конвертировать изображение в число в python, используя pytesseract - PullRequest
0 голосов
/ 20 апреля 2020

Я пытался преобразовать изображение в строку / целое число, используя pytesseract. Единственная проблема - каждый раз, когда я запускаю код, ничего не происходит. Я изменил изображение на текстовое изображение с надписью «TEXT», и pytesseract обнаружил его нормально. Вот что я использовал для того, чтобы преобразовать изображение в строку. Я также включил изображение, которое я использовал.

NumberTest

bal = pytesseract.image_to_string(balIm) print(bal)

Я не знаю, что еще попробовать единственное, что я Можно подумать, будет попробовать другой OCR, любая помощь будет оценена, спасибо.

1 Ответ

2 голосов
/ 20 апреля 2020

Попробуйте установить режим сегментации страницы (PSM) в режим 6, который установит OCR для обнаружения одного единообразного блока текста.

В частности, выполните:

bal = pytesseract.image_to_string(balIm, config='--psm 6')

Это должно сделать дать вам то, что вам нужно. На самом деле, я попытался запустить это на вашем изображении, и это дает мне то, что я ищу. Обратите внимание, что я сначала скачал ваше изображение, которое вы предоставили выше, и прочитал его в автономном режиме на моем локальном компьютере:

In [8]: import pytesseract

In [9]: from PIL import Image

In [10]: balIm = Image.open('wC62s.png')

In [11]: pytesseract.image_to_string(balIm, config='--psm 6')
Out[11]: '0.03,'

В заключение, если вы видите, что Tesseract не совсем работать для вас из коробки, попробуйте один из их режимов сегментации страницы, чтобы помочь повысить точность: https://tesseract-ocr.github.io/tessdoc/ImproveQuality#page -segmentation-method . Для полноты я сделаю это доступным ниже.

  0    Orientation and script detection (OSD) only.
  1    Automatic page segmentation with OSD.
  2    Automatic page segmentation, but no OSD, or OCR.
  3    Fully automatic page segmentation, but no OSD. (Default)
  4    Assume a single column of text of variable sizes.
  5    Assume a single uniform block of vertically aligned text.
  6    Assume a single uniform block of text.
  7    Treat the image as a single text line.
  8    Treat the image as a single word.
  9    Treat the image as a single word in a circle.
 10    Treat the image as a single character.
 11    Sparse text. Find as much text as possible in no particular order.
 12    Sparse text with OSD.
 13    Raw line. Treat the image as a single text line,
       bypassing hacks that are Tesseract-specific.

Когда вы запускаете image_to_string, укажите входной параметр config, который принимает PSM, в котором вы хотите работать. Попробуйте некоторые из эти, пока вы не получите его для вашего изображения. Перед выполнением убедитесь, что вы используете --psm в параметре config.

...