python 验证码识别示例(一) 某个网站验证码识别

news/2024/5/20 21:51:29/文章来源:https://blog.csdn.net/weixin_33882443/article/details/86006694

某个招聘网站的验证码识别,过程如下

 

一: 原始验证码:

 

二: 首先对验证码进行分析,该验证码的数字颜色有变化,这个就是识别这个验证码遇到的比较难的问题,解决方法是使用PIL 中的  getpixel   方法进行变色处理,统一把非黑色的像素点变成黑色

  

                              变色后的图片

三: 通过观察,发现该验证码有折线,需要对图片进行降噪处理。

  

 

                                            降噪后的图片

四:识别:

  这里只是简单的使用   pytesseract 模块进行识别

  识别结果如下:

        

 

     总共十一个验证码,识别出来了9个,综合识别率是百分之八十。

 

总结:验证码识别只是简单调用了一下Python的第三方库,本验证码的识别难点如果给带颜色的数字变色。

下面是代码:

二值化变色:

  

#-*-coding:utf-8-*-
from PIL import Imagedef test(path):img=Image.open(path)w,h=img.sizefor x in range(w):for y in range(h):r,g,b=img.getpixel((x,y))if 190<=r<=255 and 170<=g<=255 and 0<=b<=140:img.putpixel((x,y),(0,0,0))if 0<=r<=90 and 210<=g<=255 and 0<=b<=90:img.putpixel((x,y),(0,0,0))img=img.convert('L').point([0]*150+[1]*(256-150),'1')return imgfor i in range(1,13):path = str(i) + '.jpg'im = test(path)path = path.replace('jpg','png')im.save(path)

 

二:降噪

  

#-*-coding:utf-8-*-# coding:utf-8
import sys, os
from PIL import Image, ImageDraw# 二值数组
t2val = {}def twoValue(image, G):for y in xrange(0, image.size[1]):for x in xrange(0, image.size[0]):g = image.getpixel((x, y))if g > G:t2val[(x, y)] = 1else:t2val[(x, y)] = 0# 根据一个点A的RGB值,与周围的8个点的RBG值比较,设定一个值N(0 <N <8),当A的RGB值与周围8个点的RGB相等数小于N时,此点为噪点
# G: Integer 图像二值化阀值
# N: Integer 降噪率 0 <N <8
# Z: Integer 降噪次数
# 输出
#  0:降噪成功
#  1:降噪失败
def clearNoise(image, N, Z):for i in xrange(0, Z):t2val[(0, 0)] = 1t2val[(image.size[0] - 1, image.size[1] - 1)] = 1for x in xrange(1, image.size[0] - 1):for y in xrange(1, image.size[1] - 1):nearDots = 0L = t2val[(x, y)]if L == t2val[(x - 1, y - 1)]:nearDots += 1if L == t2val[(x - 1, y)]:nearDots += 1if L == t2val[(x - 1, y + 1)]:nearDots += 1if L == t2val[(x, y - 1)]:nearDots += 1if L == t2val[(x, y + 1)]:nearDots += 1if L == t2val[(x + 1, y - 1)]:nearDots += 1if L == t2val[(x + 1, y)]:nearDots += 1if L == t2val[(x + 1, y + 1)]:nearDots += 1if nearDots < N:t2val[(x, y)] = 1def saveImage(filename, size):image = Image.new("1", size)draw = ImageDraw.Draw(image)for x in xrange(0, size[0]):for y in xrange(0, size[1]):draw.point((x, y), t2val[(x, y)])image.save(filename)
for i in range(1,12):path =  str(i) + ".png"image = Image.open(path).convert("L")twoValue(image, 100)clearNoise(image, 3, 2)path1 = str(i) + ".jpeg"saveImage(path1, image.size)

 

三:识别

  

#-*-coding:utf-8-*-from PIL import Image
import pytesseractdef recognize_captcha(img_path):im = Image.open(img_path)# threshold = 140# table = []# for i in range(256):#     if i < threshold:#         table.append(0)#     else:#         table.append(1)#
    # out = im.point(table, '1')num = pytesseract.image_to_string(im)return numif __name__ == '__main__':for i in range(1, 12):img_path = str(i) + ".jpeg"res = recognize_captcha(img_path)strs = res.split("\n")if len(strs) >=1:print (strs[0])

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_778757.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器上安装两个织梦网站,云服务器安装多个织梦

云服务器安装多个织梦 内容精选换一换您可以选择在云服务器上安装一个或多个应用。如需在云服务器上安装其他应用&#xff0c;请参考如下操作进行添加。暂时仅允许支持VR应用的云服务器安装VR应用。暂时仅允许支持3D应用的云服务器安装3D应用。暂时仅允许支持VR应用的云服务器有…

30个在线Python自学网站,再也不用到处找资料了

最近有几个小伙伴咨询怎么学习python的事情&#xff0c;他们有做开发的、有做运营的&#xff0c;很高兴大家有这么强烈的Python学习意愿。当然Python的学习&#xff0c;我是建议自学&#xff0c;首先明确自己的学习目标&#xff0c;例如开发自动化脚本、做数据分析等。然后可以…

Asp网站脚本漏洞的安全防范

从一个注入点到系统权限的过程。当然&#xff0c;这只是一个例子&#xff0c;在真正的过程中还有很多变化的&#xff0c;我主要通过这个例子来演示一下网络******的过程&#xff0c;接下来我们就采用相应的方法进行防范。&#xff08;1&#xff09;首先我们从安装iis6.0的时候做…

网站系统架构梳理-解决高负载高并发

随着互联网业务的不断丰富&#xff0c;网站系统架构已经细分到方方面面&#xff0c;尤其对于大型网站来说&#xff0c;所采用的技术更是涉及面非常广&#xff0c;从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求&#xff0c;已经不是原来简单的h…

一步一步SharePoint 2007之五:向网站中添加一个子网站

何向一个现有的网站中添加一个子网站&#xff0c;而不是重新建立一个新的网站。当然&#xff0c;我们也可以重新建立一个新的网站&#xff0c;然后把新网站的网址加到原网站的主菜单中。不过&#xff0c;上述两种方法是有区别的&#xff0c;前者仍然是同一个网站&#xff0c;我…

网站架构之缓存应用(3)实现篇

这篇来讲如何利用memcached实现一级缓存&#xff0c;以及如何让一级缓存组件支持在企业库&#xff0c;memcached或者其它第三方实施方案之间的切换。memcached本人并没有太多经验&#xff0c;如果文中有说的不对的地方&#xff0c;还希望批评指出&#xff0c;且文中关于memcach…

【办公实用网站收集】免费模板

目录1 办公区1.1 PPT模板1.2 简历模板2 IT女孩必备2.1 经典配色2.1.1 在线取色器2.1.2 配色表2.1.3 配色收藏网站2.2 在线格式转换2.2.1 png、jpg、gif转ico图标2.2.2 API免费接口免费API接口2.2.3 在线视频处理3 网站素材3.1 免费整站模板3.2 jQuery插件库3.3 高清图库3.4 LOG…

大型网站技术架构(八)网站的安全架构

2019独角兽企业重金招聘Python工程师标准>>> 从互联网诞生起&#xff0c;安全威胁就一直伴随着网站的发展&#xff0c;各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击&#xff08;…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

WF4.0实战(十七):实现自动访问网站机器人

概述篇 用WF4.0实现自动访问’机器人’&#xff0c;听起来有点不可思议。还是老方式&#xff0c;看效果&#xff0c;在讲述一下如何实现&#xff0c;最后总结,附代码下载。 这篇文章用这个’机器人’玩转了一回博客园。包括&#xff1a;机器人登录&#xff0c;机器人回帖&#…

Hexo-SEO搜索引擎优化(sitemap)

一、提交站点地图的作用 假如你在百度上搜索信息&#xff1a;hexo&#xff08;sakura&#xff09;博客&#xff1a; 会返回n多条搜索结果&#xff0c;来源于不同的平台推送&#xff0c;但是每条结果都会有不同的匹配度&#xff0c;按搜索引擎排序规则进行排序。 作为站长&am…

hexo美化(豆瓣阅读、电影、常用网站搜索页)

文章目录1.增加豆瓣阅读、电影分享页1.1预览1.2装配2.增加常用网站搜索页2.1预览2.2装配1.增加豆瓣阅读、电影分享页 1.1预览 阅读&#xff1a; 电影&#xff1a; 1.2装配 我现在用的butterfly是支持hexo-douban插件的&#xff0c;所以直接使用就好了。 在豆瓣注册一个账…

八大免费SSL证书-给你的网站免费添加Https安全加密

https://www.freehao123.com/top-8-free-ssl-cert/ https://www.freehao123.com/top-8-free-ssl-cert/ https://www.freehao123.com/top-8-free-ssl-cert/ 八大免费SSL证书-给你的网站免费添加Https安全加密 SSL证书&#xff0c;用于加密HTTP协议&#xff0c;也就是HTTPS。…

如何申请https证书、搭建https网站

如何申请https证书、搭建https网站 https://freessl.wosign.com/https-web.html https://freessl.wosign.com/https-web.html https://freessl.wosign.com/https-web.html 随着国内搜索引擎巨头百度启用全站https加密服务&#xff0c;全国掀起了网站https加密浪潮。越来越多…

SSL证书是否影响网速和网站访问速度

http://globalsign.baijia.baidu.com/article/188567 http://globalsign.baijia.baidu.com/article/188567http://globalsign.baijia.baidu.com/article/188567SSL证书是否影响网速和网站访问速度 GlobalSign数字证书 10月10日 10:50https ssl 网速 分类 :互联网阅读:423 还有…

20 个免费的网站设计模板

为什么80%的码农都做不了架构师&#xff1f;>>> 1. Download Free Photoshop PSD Template 2. Magnate: Professional Website PSD Template 3. Free Website Template PSD 4. Landing Page Free PSD 5. Web layout psd html FREE 6. Free PSD Website Template fo…

20个免费为您的网站和博客提供的音频播放器

文章转载 http://www.iteye.com/topic/797728 之前&#xff0c;我为大家准备了 21个为您的网站和博客提供的免费视频播放器&#xff0c;在本文中我爱互联网将给您提供一些免费的在线音频播放器&#xff0c;在线音频播放器允许任何人在他们的站点和博客上添加&#xff0c;比如常…

20个免费为您的网站和博客提供的音频播放器

文章转载 http://www.iteye.com/topic/797728 之前&#xff0c;我为大家准备了 21个为您的网站和博客提供的免费视频播放器&#xff0c;在本文中我爱互联网将给您提供一些免费的在线音频播放器&#xff0c;在线音频播放器允许任何人在他们的站点和博客上添加&#xff0c;比如常…

美女SEO系列八:何为目标关键词?

大家好&#xff0c;我是实名网络营销团队的美女SEO周珍&#xff0c;昨天我和大家分享的是《美女SEO系列七&#xff1a;什么是长尾关键词》的文章。那么今天我继续来为大家分享的是&#xff0c;关于目标关键词的内容&#xff0c;欢迎大家的踊跃围观&#xff0c;谢谢。 一、何为目…

使用Hexo搭建个人博客网站-01-安装Node.js

一、检查 Node.js 在电脑桌面上或其他任何位置右击 Git Bash Here&#xff0c;输入&#xff1a;node -v。 如果电脑上还没有安装 Node.js&#xff0c;显示将会如下图所示&#xff1a; 提示出错&#xff0c;主要是由于我们还没有安装 Node.js 的原因&#xff0c;则需要按照后面…