您的位置:首页 > 编程语言 > Python开发

python-识别图片-安装及配置:tesseract+pytesseract+Pillow

2017-11-23 17:37 549 查看
环境:win7 x64位 +python3.7 

selenuim 是pip的忘记版本号了,反正是2017-11-01安装的版本

参考大神文章 Python验证码识别 安装Pillow、tesseract-ocr与pytesseract模块的安装以及错误解决

看过很多乱七八糟的文章,就这篇篇最全又实用

下面是我自己的笔记(很多是抄上面这篇文章的)

1.安装Pillow
pip install Pillow
 
2.安装tesseract-ocr
github地址: https://github.com/tesseract-ocr/tesseract
You can either Install
Tesseract via pre-built binary package or build
it from source.
 
windows:下载下面其中一个安装包,我用3.05
 tesseract-ocr-setup-3.05.01.exe
 tesseract-ocr-setup-4.00.00dev.exe (experimental). 

ubuntu:

sudo apt-get install tesseract-ocr

traineddata文件路径: /usr/share/tesseract-ocr/tessdata/
 
3.安装pytesseract
pip install pytesseract

遇到的问题:
1.FileNotFoundError: [WinError 2] 系统找不到指定的文件
解决方法:

方法1[推荐]: 将tesseract.exe添加到环境变量PATH中,【1不行我用2】
例如: D:\Tesseract-OCR,默认路径为C:\Program Files (x86)\Tesseract-OCR
注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动

方法2: 修改pytesseract.py文件,指定tesseract.exe安装路径
路径: D:\python\Lib\site-packages\pytesseract

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLYtesseract_cmd
= 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘



2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Tesseract-OCR\\tessdata/eng.traineddata')
 解决方法:

方法1: 【这个我不会用】
将tessdata目录的上级目录所在路径(默认为tesseract-ocr安装目录)添加至TESSDATA_PREFIX环境变量中
例如: C:\Program Files (x86)\Tesseract-OCR
Please make sure the TESSDATA_PREFIX environment variable
is set to the parent directory of your
"tessdata" directory.
 
方法2:  在.py
9dbd
文件配置中指定tessdata-dir 【我用这个:代码在下面】
tessdata_dir_config =
'--tessdata-dir "D:\\Tesseract-OCR\\tessdata"'#
tessdata_dir_config = '--tessdata-dir "'C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'pytesseract.image_to_string(image, config=tessdata_dir_config)
附: trainedata下载地址: the
latest from github.com

测试
代码如下:

importpytesseract
fromPIL
importImage
#访问相对路径如下图,绝对路径是下一行代码
image = Image.open('C:\\Users\\hf\\Desktop\\code.jpg')
tessdata_dir_config ='--tessdata-dir "C:\\Program
Files (x86)
\\Tesseract-OCR\\tessdata"'
code = pytesseract.image_to_string(image,config=tessdata_dir_config)
print(code)



我的测试用验证码:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐