Я хочу извлечь тайский текст из изображений, используя 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 '
Вот изображения, которые я использую.