今天继续之前的图像识别,这次在英文的基础上开始中文识别,首先添加中文识别包:chi_sim 这个文件。下载地址:

https://github.com/tesseract-ocr/tessdata 如果你有不明白的可以去官方GitHub看看:

https://github.com/tesseract-ocr/tesseract

下载后把chi_sim 这个文件安装到你的tessdata这个文件夹下面。

注意一点: 下载中文包的时候要看看你的tesseract的版本,如果你的是3.02版本的,就下3.02对应的中文包;3.05就下3.05的,一定要仔细这里。不然后面会报错!

安装好了后,我就去写代码:

tresseract语言包 tesseract 中文语言包_tresseract语言包


结果发现报错如下:

pytesseract.pytesseract.TesseractError: (3221225477, ‘’)

这是怎么回事呢?明明中文包下载对的啊。试过识别英文图片的,都是正常打印出字母来。于是纳闷了一下,便开始各种谷歌,看了数篇解决方案后,发现是环境变量那里少了tessdata这个,于是点开

tresseract语言包 tesseract 中文语言包_tesseract_02


找到 “系统变量”这里的“Path”变量 ,双击它,然后在弹出的页面里面找到之前添加的Tesseract-OCR这个变量:

tresseract语言包 tesseract 中文语言包_tesseract_03


在它后面新建一个同样路径的变量,然后再加上tessdata 这个单词。

注意一定要重新建一个环境变量,而不是在原来的上面直接加!!!

即这样:C:\Program Files (x86)\Tesseract-OCR\tessdata

就像我上面图片一样,建两个后确定保存。

这里再多说一句:如果你按上面的添加环境变量后还是报错,可以看看你的系统变量这一栏有没有下图这个选项:

tresseract语言包 tesseract 中文语言包_机器学习_04


如果没有的话,就自己新建一个,把他添加进去。

这下我再运行上面的程序,随手找的一张背景有点杂乱的中文图片,识别效果如下图:

tresseract语言包 tesseract 中文语言包_OCR_05


简直差的不行了,又换了一张图,是标准的宋体,而且背景很干净,于是得到了下面这样的效果:

tresseract语言包 tesseract 中文语言包_图片识别_06


所以得出跟英文一样的结论:tesseract要想识别中文的概率达到百分之七十以上,首先要字体是宋体;其次背景要很干净,没有跨行。 因为只安装了中文简体的包,没有安繁体,而繁体是下面tra这个:

tresseract语言包 tesseract 中文语言包_tesseract_07


所以如果你要识别繁体就要下这一个才对!好了今天的识别就到这里,后面继续开始训练字库。