说明
本文主要为参考博客:【python 图像识别】python 身份证号码识别 自己在进行实践过程中遇到的一些问题的记录。
实践环境
anaconda3+python3.6
macos
实践记录
1、在执行这段时候会提示没有reload模块,原因是博主使用python2写的,需要声明编码方式,而python3 中系统默认使用的就是UTF-8编码,所以需要注释掉。
参考:NameError: name 'reload' is not defined 问题
2、在中间定义的几个函数中涉及print输出的,都需要把print后面的内容括号起来
3、TesseractNotFoundError: tesseract is not installed or it's not in your path
提示:tesseract 不在环境变量中或者没有安装
需要修改源码中的
tesseract_cmd = 'tesseract'
在运行代码的时候,提示没有pytesseract模块,然后安装了这个包,上面链接提示的这个文件理论上应该在这个包里面
在安装包中pytesseract.py中的35行位置
那问题是现在这个路径怎么修改呢?
作者修改好的内容,指定到的是一个exe结尾的文件,也提到需要安装这个tesseract-ocr软件
安装说明:https://github.com/tesseract-ocr/tesseract/wiki
上面提到tesseract提供类似API的功能去实现从图片中提取文字信息,所以这个软件还必须要进行安装。
我这里对应安装的是mac版,参考homebrew的安装方式
没有homebrew的童鞋欢迎参考官网进行安装,mac安装软件神器,用它官网的话来讲是 “The missing package manager for macOS”
安装好了,那么问题是,那么多文件夹,应该把路径对应到那个文件呢?没什么头绪,难道不用像windows系统那样指定 exe文件?
先不管对应到哪个路径,先在来试试安装完tesseract后执行py程序有什么变化
果然,可以跑出来了,不过证件号码没识别出来
在终端试一下执行
tesseract test1.png output
能识别一部分出来,不过效果有点差,身份证号码部分基本能识别出来,其他部分效果就很差了,估计是默认的语料库里面,没中文部分。
既然终端可以直接识别,为什么调用pytesseract.py无法进行识别呢?还是需要设置路径么?
修改一下pytesseract.py中的35行
tesseract_cmd = '/usr/local/Cellar/tesseract/4.0.0/share/tessdata/'
提示:TesseractNotFoundError: /usr/local/Cellar/tesseract/ is not installed or it's not in your path