内置 OCR 识别——Tesseract

最近的需求中需要解决一些简单验证码的识别,于是我先在自己电脑上使用 Tesseract 做了一些测试。
测试过程中遇到的问题及解决方法跟大家分享一下。

1.pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it’s not in your path

解决办法:

方法 1: 将 tesseract.exe 添加到环境变量 PATH 中,

例如: D:\Tesseract, 默认路径为 D:\iS-RPA\plugin\Com.Isearch.Tesseract

注意: 为了使环境变量生效,需要关闭 cmd 窗口或是关闭 pycharm 等 ide 重新启动

方法 2: 修改 pytesseract.py 文件,指定 tesseract.exe 安装路径

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = r'D:\iS-RPA\plugin\Com.Isearch.Tesseract\tesseract.exe‘

方法 3: 在实际运行代码中指定

添加如下代码; 将 tesseract.exe 路径添加到代码中

pytesseract.pytesseract.tesseract_cmd = 'D:\\nn\Tesseract\\tesseract.exe'

附上测试代码:

try:
    import Image
except ImportError:
    from PIL import Image
    import pytesseract

    pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'
    print('识别出的结果如下:')
    print(pytesseract.image_to_string(Image.open('01.png')))

2.pytesseract.pytesseract.TesseractError: (1, ‘Error opening data file \nn\Tesseract-OCR\eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your “tessdata” directory. Failed loading language ‘eng’ Tesseract couldn’t load any languages! Could not initialize tesseract.’)

解决办法:

添加如下代码; 将 tesseract.exe 路径添加到代码中

os.environ['TESSDATA_PREFIX'] = 'D:\\nn\Tesseract\\tessdata'

3.Failed loading language ‘eng’ Tesseract couldn’t load any languages! Could not initialize tesseract.

解决办法:

重新安装 tesseract,安装 4.0 后,又出现以上 2 的问题,然后按照 2 的解决办法解决后,代码就可以成功运行!

http://support.i-search.com.cn/upload/26558ffcdec44c9da45779defc68dcec_ComIsearchTesseract.zip