灰度、二值化、tesserocr验证码识别

开发平台:Linux的,python3

导入库:pytesseract,PIL


用tesserocr做图形验证码识别,下图分别是原始彩色图片,有干扰噪点,处理成灰度的图片,只有黑白的图片,我们最终用tesserocr就是通过第三个黑白图片进行识别



思路有了,开始代码,首先需要安装包,Linux下安装方式

1,sudo apt-get install tesseract-ocr(安装tesseract)

2,pip install pytesseract(python操作pytesseract)


1,对图片进行灰度处理



2,对图片进行二值化处理

普及下色彩基本理论:

灰度图像的每个像素点色值在0-255,0代表纯黑,255代表纯白,二其实化值的原理通俗说就是我们对灰度二维码图像做浅灰色统一设置为白色( 255),深灰色统一设置为黑色(0),那么我们这个浅灰色和深灰色的临界值该怎么确定?在该案例中就是验证码的数字和背景交界处比较合适,背景的杂色我们认为是浅灰色,验证码数字我们认为是深灰色

我用PS吸取了图像上的临界处某点,色值是129,然后通过下面点方法和拉姆达函数做二值化处理,当然如果效果不理想的话,可以多测一些点,最终得到黑白图像



3,黑白图像识别

上一步得到img_two这个黑白图像,开始调用tesserocr里面的方法image_to_string将图片验证码转成字符串,并打印,打印结果文章开头已有




完整代码


本文讲述的是最基本的灰度处理和二值化处理以及验证码识别,更复杂的验证码则需要在图像处理上做很多操作,大家有兴趣可以找些更复杂的试试体验一下该方法

公众号部分精选原创文章:

python VIP精品学习社区

蟒蛇爬取APP王者荣耀英雄皮肤

LINUX + Nginx的+ Uwsgi + Django的部署文档

本人学习方法总结分享

蟒蛇爬取有道词典

蟒蛇爬微信公众号并向微信发消息实时监控

微信人工智能聊天机器人(群聊版)

python 0基础如何学习?

python web后端如何学习?

蟒蛇数据分析,人工智能学习路线


本人经验有限,不足之处欢迎指正

进蟒蛇学习与资料分享群的,欢迎添加微信好友,添加成功发送:资料,  拉你进群学习下载

源码资源请查阅公众号源码获取方式

公众号如下回复主关键词电子杂志相关视频教程:

python,django,flask,数据分析,爬虫,运维,大数据,量化金融,机器学习,深度学习,自然语言处理,人工智能,电子书,php,ps,java,mysql,seo,ui


猜你喜欢

转载自blog.csdn.net/weixin_41666747/article/details/80727049