python-OCR识别图片字符

1、安装 pyocr , pip install pyocr

2、安装pil, pip install PIL

3、安装 tesseract-ocr   http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe ,下载后直接默认安装

4、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面  https://codeload.github.com/tesseract-ocr/tessdata/zip/master

下载jTessBoxEditor,这个是用来训练字库的,中文识别不太理想,进行文字训练后,效果会更好


#coding=utf8
from pyocr import pyocr
from PIL import Image
tools = pyocr.get_available_tools()[:]
a=tools[0].image_to_string(Image.open('E:\\11111\\1.jpg'),lang='chi_sim')  #图片里的文字是"密码错误"
print a

识别的结果是 "舫码锺误",识别效果不太理想,接下来我们来对她进行文字训练

将1.jpg名字修改为mjorcen.normal.exp0.jpg 名字由自己而定

mjorcen.normal.exp0.jpg转换位tig格式,注意不能只修改后缀名来转换,否则jTessBoxEditor打不开此文件

进入cmd,输入tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox生成box文件

打开train.bat,open mjorcen.normal.exp0.tif,矫正文字后,记得保存,保存后box文件就记录了矫正后的文字了


输入 tesseract  mjorcen.normal.exp0.jpg mjorcen.normal.exp0  nobatch box.train

unicharset_extractor mjorcen.normal.exp0.box 开始训练



font_properties文件 内容写入  normal 0 0 0 0 0 ,命令输入 echo normal 0 0 0 0 0 > normal_properties

运行 shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr


mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr


cntraining mjorcen.normal.exp0.tr


生成对应文件,最后会生成五个文件,把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上normal.

输入命令 combine_tessdata normal. 合并文件 生成normal.traineddata文件,将它复制到Tesseract-OCR项目的tessdata文件夹里


运行程序

#coding=utf8
from pyocr import pyocr
from PIL import Image
tools = pyocr.get_available_tools()[:]
a=tools[0].image_to_string(Image.open('E:\\11111\\1.jpg'),lang='normal')  #图片里的文字是"密码错误"
print a



lang选择训练后的语言normal


运行后成功识别为 "密码错误"








你可能感兴趣的:(python)