博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux环境下pytesseract的安装和央行征信中心的登录验证码识别
阅读量:5161 次
发布时间:2019-06-13

本文共 1548 字,大约阅读时间需要 5 分钟。

首先是安装,我参考的是这个 http://blog.csdn.net/xinghun_4/article/details/47860645

 

我是centos,使用yum

yum install python-devel libjpeg libjpeg-devel freetype freetype-devel zlib zlib-devel littlecms littlecms-devel libwebp libwebp-devel libfreetype libfreetype-devel giflib-devel automake libtool

 tesseract安装包我下载的是3.0.4,安装的时候提示搭配的leptonica的版本必须是1.7.2以上,所以不能使用1.6.9的leptonica,这点要注意。

 

 

上一些央行征信征信的验证码例子,这是截图

 

 可以看到,字迹是相当的工整,但是直接使用image_to_string这个方法几乎是不可能是别的,只有少数图片可以转换输出文字。

需要做点处理,找规律可以发现这些噪点都是一些暗淡的像素点,可以把他们去掉(就是转换成白色的)。

 

#coding=utf-8 import pytesseract from PIL import Image import re
class YzmDiscern():     def __init__(self, threshold):         #self.threshold = threshold         self.table = [0 if _ < threshold  else 1 for _ in range(256)]     def pic2text(self,picture_name):         im=Image.open(picture_name+'.jpg')         imgry = im.convert('L')         out = imgry.point(self.table,'1')         out = imgry.point(self.table,'1')         out.save(picture_name+'b.jpg')         # i = Image.open(name+'b.jpg')         # i.show()         text= pytesseract.image_to_string(out)         #print text         text2=re.sub('[^a-z0-9A-Z]','',text)         return text2 if __name__=="__main__":     yzmDiscern=YzmDiscern(threshold=140)     print yzmDiscern.pic2text('pictures/150873460574')

 

这是pycharmm调用的是远程linux环境的截图,如果要在linxu直接执行./do_yzm.py,那就需要在代码第一行指明解释器路径,然后修改do_yzm.py的权限为可执行的权限.

 

实际识别率几乎达到了95%,效果还可以。如果错了再换个验证码登录就可以了。

 

这是原图

 

threshold这个值要设置合理,设置太大了,那些噪点全部变成黑色了。

 

设置小了也不行,虽然噪点都去掉了,但会把字母也弄残了。

 

这样就会识别不出来了。

这是设置140的结果

 

 

 

 

 
 

转载于:https://www.cnblogs.com/ydf0509/p/7606094.html

你可能感兴趣的文章
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>