1. 安装tesseractOCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。 tesseract下载地址:https://digi.bib./tesseract/ 进入下载页面,可以看到有各种.exe文件的下载列表,这里可以选择下载3.0版本。 其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.02.exe。 下载完成后双击,此时会出现如下图所示的页面。 此时可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,这样OCR便可以识别多国语言。然后一路点击Next按钮即可。 接下来,为了在python代码中使用tesseract功能,使用pip安装pytesseract:
2、配置环境变量为了在全局使用方便,比如安装路径为D:\Program Files (x86)\Tesseract-OCR,将该路径添加到环境变量的path中 配置完成后在命令行输入tesseract -v,如果出现如下图所示,说明环境变量配置成功 3、验证安装接下来,我们可以使用tesseract和pytesseract来分别进行测试。 我们以如下图所示的图片为样例进行测试。 该图片的链接为https://raw./Python3WebSpider/TestTess/master/image.png,可以直接保存或下载。 首先用命令行进行测试,将图片下载到D盘chromeDownload文件夹,保存为image.png,然后在该文件夹中打开命令行,用tesseract命令测试:
运行结果如下:
这里我们调用了tesseract命令,其中第一个参数为图片名称,第二个参数result 为结果保存的目标文件名称。 运行结果便是图片的识别结果:Python3WebSpider。可以在chromeDownload文件夹中看到result.txt,这时已经成功将图片文字转为电子文本了。 然后还可以利用Python代码来测试,这里就需要借助于pytesseract库了,测试代码如下:
我们首先利用Image读取了图片文件,然后调用了pytesseract的image_to_string()方法,再将其识别结果输出。 运行结果如下:
如果成功输出结果,则证明tesseract和pytesseract都已经安装成功。 4、使用时遇到的坑在使用tesseract命令行进行测试时,会议开始报以下的错误 Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata 报错是意思是缺少环境变量TESSDATA_PREFIX,导致无法加载任何语言,就不能初始化tesseract。 解决的方法也很简单,在环境变量中添加TESSDATA_PREFIX,如下图 注意:变量值中的路径为“D:/Program Files (x86)/Tesseract-OCR”,使用正斜杠“/”。windows中复制过来的路径默认是反斜杠“\” 配置完成后,重新打开命令行,即可正常使用。 第二个坑是使用pytesseract时,出现以下错误
这就很坑,添加了全局变量,还是提示tesseract没有安装或者不在PATH中。 百度了一下,解决方案如下。 pytesseract安装后,在python的Lib目录下site-packges下会生成一个pytesseract文件夹,文件夹中找到pytesseract.py,路径为:D:\Python36\Lib\site-packages\pytesseract,使用notepad之类软件打开pytesseract.py,找到如下两行:
将tesseract_cmd = 'tesseract'修改为:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe' 表示tesseract_cmd配置的是你安装tesseract的绝对路径,这样就能找到tesseract了。修改后保存,再去运行python代码,就可以成功了。 |
|