Pytesseract: UnicodeDecodeError: кодек «charmap» не может декодировать байт

Я запускаю большое количество OCR на скриншотах с помощью Pytesseract. В большинстве случаев это работает хорошо, но небольшое число вызывает эту ошибку:

pytesseract.image_to_string(image,None, False, "-psm 6")
Pytesseract: UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 2: character maps to <undefined>

Я использую Python 3.4. Любые предложения, как я могу предотвратить возникновение этой ошибки (кроме попытки/исключения), были бы очень полезны.


person Nickpick    schedule 03.10.2015    source источник
comment
Вы видели ответ, найденный здесь: stackoverflow.com/a/34293514/2029846   -  person wittrup    schedule 26.10.2016


Ответы (2)


Используйте Unidecode

from unidecode import unidecode
import pytesseract

strs = pytesseract.image_to_string(Image.open('binarized_image.png'))
strs = unidecode(strs)
print (strs)
person Sreeragh A R    schedule 27.02.2018

убедитесь, что вы используете правильные параметры декодирования.
см. https://docs.python.org/3/library/codecs.html#standard-encodings

str.decode('utf-8')
bytes.decode('cp950') для традиционного китайского и т. д.

person vintol    schedule 17.08.2017