Невозможно распечатать извлечение строки из изображений, используя как pyocr, так и pytesseract - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу извлечь тайский текст из изображений, используя PyOCR, но я не могу напечатать строку.

Вот код.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PIL import Image
import sys
import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("No OCR tool found")
    sys.exit(1)
print("Will use tool '%s'" % (tool.get_name()))

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[3]
print("Will use lang '%s'" % (lang))

txt = tool.image_to_string(
    Image.open('test2.png'),
    lang=lang,
    builder=pyocr.builders.TextBuilder()
)

print(txt)

И это дает мне эту ошибку.

Traceback (последний вызов был последним): файл "tess.py", строка 29, в печатном виде (txt) Файл "C: \ Python34 \ lib \ encodings \ cp437.py", строка 19,in encode return codecs.charmap_encode (input, self.errors, encoding_map) [0] UnicodeEncodeError: кодек 'charmap' не может кодировать символы в позиции 0-2: символы отображаются на

Вот кодform pytesseract, который выдает ту же ошибку.

from PIL import Image
import pytesseract

text = pytesseract.image_to_string(Image.open('test2.png'), lang='tha')
print(text)

После того, как я попытался кодировать его с помощью utf-8.Это дает мне этот вывод.

b '\ xe0 \ xb8 \ x99 \ xe0 \ xb8 \ xb2 \ xe0 \ xb8 \ xa2 \ xe0 \ xb8 \ xa0 \ xe0 \ xb8 \ x84 \ xe0 \xb8 \ x9e \ xe0 \ xb8 \ x87 \ xe0 \ xb8 \ xa9 \ xe0 \ xb9 \ x8c \ xe0 \ xb8 \ xaa \ xe0 \ xb8 \ xad \ xe0 \ xb8 \ x99 \ xe0 \ xb9 \ x80 \ xe0 \ xb8xad \ xe0 \ xb8 \ x81 '

Вот изображения, которые я использую.

Some Thai name

...