Многочисленные варианты конфигурации Pytesseract OCR

У меня возникают проблемы с pytesseract. Мне нужно настроить Tesseract на то, что он настроен на прием одиночных цифр, а также способен принимать числа только в том случае, если нулевое число часто путается с "O".

Вот так:

target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits')

Большое спасибо,

Найл

Ответ 1

tesseract-4.0.0a поддерживает ниже psm. Если вы хотите иметь распознавание одного символа, установите psm = 10. И если ваш текст состоит только из цифр, вы можете установить tessedit_char_whitelist=0123456789.

Page segmentation modes:
  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 с несколькими параметрами.

target = pytesseract.image_to_string(image, lang='eng', boxes=False, \
        config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')

Надеюсь это поможет.

Ответ 2

Причина, по которой у вас возникли проблемы, заключается в том, что в версии 4.0 не работает ограничение символов. Вы должны принудительно активировать устаревший режим (oem 0), чтобы ограничить количество найденных символов. Где-то в команде тессерактов есть ошибка, которую они еще не исправили.