Dee*_*Raj 2 python unicode ocr
我在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"
Run Code Online (Sandbox Code Playgroud)
附加用于提取文本的图像.
现在我需要一种方法来匹配它.而且我还需要知道从pytesseract中提取的字符串将是Unicode还是什么?如果有办法将其转换为Unicode(就像我们在wordpad中有选项将字符转换为Unicode)
您正在使用的Tesseract比英语以外的语言,所以首先要确保,你已经学习数据集安装在您的语言,因为它显示在这里(仅适用于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")
Run Code Online (Sandbox Code Playgroud)
哪个输出:
???? ????????
????. ????????
Not Match
Run Code Online (Sandbox Code Playgroud)
这意味着单词并不完全匹配,但是,考虑到最小的编码工作量和输入图像的可怕质量,它认为性能非常惊人.无论如何,该示例表明编码和解码应该不再是问题.