Pytesseract 外语提取使用 python

Pytesseract foreign language extraction using python

我在 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 语言(就像我一样,作为斯洛文尼亚人),我强烈建议您切换到 Python3。 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

这意味着单词不太匹配,但考虑到最小的编码工作量和输入图像的糟糕质量,它认为性能非常惊人。不管怎样,这个例子表明编码和解码应该不再是问题了。