Tesseract,一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,特点是开源,免费,支持多语言,多平台。
在搭建流程很简单:
(1)下载并安装 tesserct-ocr(记住安装路径)
Windows版exe安装文件地址:https://github.com/UB-Mannheim/tesseract/wiki
(2)安装pytesseract:
在cmd中,直接:pip install pytesseract
(3)配置下环境:
其中pytesseract.py文件存储在Python包文件夹中,你可以使用如下语句找到其绝对路径:
(4)编写4行代码测试OCR识别效果:
——————————————————————————————————————————————————————————————————
上述流程很简单,但是实际上自己花了近3个小时才疏通该环境,其中近两个小时在解决一个报错问题:
无论我怎么修改pytesseract.py那行语句(比如路径用 \\双斜杠、或路径前加‘r’,或用‘/’反斜杠,或去掉.exe),或是修改环境变量,或是重启jupyter notebook,找遍网上几乎所有解答,几乎都没用。
其中步骤(3)配置环境中,自己也早使用方法3尝试解决过这个问题,但当时没起作用,当时也不清楚方法3的真实作用。经过近两个小时捣鼓后,终于在https://blog.csdn.net/jacke121/article/details/75443785博客中找到解决办法。
我直接粘贴复制其代码,修改了图片路径和pytesseract.py路径,在jupyter notebook中执行后,瞬间看到了OCR识别结果。泪崩~
问题原因:
(1)起始当初自己也用过方法3,但报了一个错,依旧是“系统找不到指定文件”,自己就以为该方法同样不起作用。其实那时,自己在使用该方法时,没有意识到路径要使用 \\ 或者 / 或者 加前缀r,依旧使用的 \ !
而之后再寻找答案中,明白路径怎么写后,又忘记当初测试方法3时用错了路径规则。真是‘测不逢时’。。。
(2)导致“系统找不到指定文件”的原因是:pytesseract.py文件在E盘,而自己jupyter notebook默认只能浏览F盘内文件,为了能够在jupyter中浏览pytesseract.py文件的内容(比用记事本打开更直观、也比其他软件更快速),我就手残将该文件复制了一份到用于测试该项目的jupyter源文件夹内,而由于我在测试代码里写了:,所以测试代码一直import的是我刚才复制的那一份pytesseract.py,而后续所有环境配置的操作,都是修改的是E盘中那份原始pytesseract.py。所以无论我怎么去改环境变量、修改原始pytesseract.py文件中的代码,报错依旧无法解决。
(3)在巧合下,某此复制别人代码,终于解决了这个问题。后来,通过溯源,也明白了很多技术原理,比如的作用,就是修改源文件中'tesseract_cmd'变量的值。
有用的参考:
https://github.com/nikhilkumarsingh/tesseract-python
https://blog.csdn.net/jacke121/article/details/75443785
https://blog.csdn.net/u011085172/article/details/71466182