我在 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
这意味着单词不太匹配,但考虑到最少的编码工作和输入图像的糟糕质量,它认为性能相当惊人。无论如何,这个例子表明编码和解码应该不再是问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)