我在 Windows 机器上使用 Python 2.7、Pytesseract-0.1.7 和 Tesseract-ocr 3.05.01。
我尝试提取韩语和俄语的文本,我确信我提取了。
现在我需要比较字符串和从图像中提取的字符串。
我无法比较字符串并得到正确的结果,它只是说不匹配。
这是我的代码:
# -*- coding: utf-8 -*-
from PIL import Image
import pytesseract
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True, help="path to the image")
args = vars(ap.parse_args())
img = Image.open(args["input"])
img.load()
text = pytesseract.image_to_string(img)
print(text)
text = text.encode('ascii')
print(text)
i = 'Сред. Скорость'
print i
if ( text == i):
print "Match"
else :
print "Not Match"
用于提取文本的图像已附上。
现在我需要一种方法来匹配它。而且我还需要知道从 pytesseract 中提取的字符串是 Unicode 还是什么?并且如果有办法将其转换为 Unicode(就像我们在写字板中有用于将字符转换为 Unicode 的选项)
最佳答案
您正在使用英语以外的其他语言使用 Tesseract,因此首先请确保您已安装适合您的语言的学习数据集,如图所示 here (仅限 Linux 指令)。
其次,如果您正在使用非 ascii 语言(就像我一样,作为斯洛文尼亚人),我强烈建议您切换到 Python 3。 Python 3 开箱即用地支持 Unicode,因此它确实为您省去了编码和解码字符串的大量痛苦...
# python3 obligatory !!!
from PIL import Image
import pytesseract
img = Image.open("T9esw.png")
img.load()
text = pytesseract.image_to_string(img, lang="rus") #Specify language to look after!
print(text)
i = 'Сред. Скорость'
print(i)
if (text == i):
print("Match")
else :
print("Not Match")
哪些输出:
Фред скорасть
Сред. Скорость
Not Match
这意味着单词不完全匹配,但考虑到最小的编码工作量和输入图像的糟糕质量,它认为性能非常惊人。无论如何,该示例表明编码和解码应该不再是问题。
关于python - 使用python提取Pytesseract外语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691829/