使用测试如下。
1 .识别文字
2 .识别简单验证码
3 .识别银行卡
准备工作
1.pyTesseract库安装: pytesseract是tesseract的Python界面,可以直接在cmd中使用pip安装pytesseract进行安装
2 .在电脑上下载并安装tesseract,地址http://digi.bib.uni mannheim.de/tessera CT/tessera CT-ocr-setup-4.00.00 deder
确定积分后,完成安装,设定环境变量。
如果在CMD上输入Tesseract -v并显示以下接口,则表示tesseract已安装完成并已添加到系统变量中:
下载tesseract简体中文语言包。 下载地址为https://github.com/tessera CT-ocr/Tess data/find/master/chi _ sim.trained data,还有Chi
做好准备工作就可以实现OCR文字识别了,代码非常简单:
importpytesseractfrompilimportimageimportcv 2img=image.open ('0. jpg ' ) text=pytesseract.image _ to _ string ) ) lang='chi_sim ' ) pytesseract.pytesseract.tessera CT _ cmd=' c ://program files (x86 )/tessera CT-ocr/tocr
运行结果如下
如果发生错误:
pytesseract.pytesseract.tesseracterror : (1,‘erroropeningdatafile (程序文件) x86 )Tesseract-OCR ) ) ) ) ) ) ) ) chi _ sim.traineddatapleasemakesurethetessdata _ prefixenvironmentvariableissettoyour“Tess datoyour
请转到本文: https://blog.csdn.net/weixin _ 43746433/article/details/89922155
2.笔者突然想到,利用Ocr 能不能识别简单的验证码呢?
于是我在网上随便找了验证码。 图:6.png:
运行结果并不令人满意,
为了更好地处理图像,可以将图像转换为灰度图像,去除黑点以进行二值化降噪。
代码如下。
importpytesseractfrompilimportimage,ImageEnhance, imagefilterimportcv 2img=image.open (6. png ) ) text=pyteseract lang=' chi _ sim ' (打印(文本)图像为灰色img _ gray ode_grave黑白图像img _ black _ white=img _ gray.point (lambdax : ifx 200 else 255 ) PIC1='./tmp/转换为code _ black _ white.png pil (在pythonimagelibrary (中im=image.open ) pic1 ) im=im.filter ) image filter.median fing ance(2) im=im.convert ) (1) (im.save )./tmp/JiangZao.png ) (#im.show ) (pytesserave ) ) Jiang Zao . lang='eng数字text=pytesseract.image _ to _ string (im,lang='chi_sim ' ) print )的执行结果如下,成功!3.如果利用ocr识别银行卡呢?
修正图像如下
执行结果如下。
银行卡识别结果相当差,这涉及更深层次的opencv知识,笔者将在下一篇详细论述如何使用opencv和python进行信用卡识别
参考文献“:
1.https://blog.csdn.net/JC Lian 91/article/details/80628188
2.https://segment fault.com/q/10100005686388