常用验证码标注ampampamp识别(数据采集预处理字符图切
来源:Python爬虫与数据挖掘
作者:Python进阶者一、前言
上一篇文章小编给大家讲解了需求分析和实现思路,Python项目实战篇常用验证码标注和识别(需求分析和实现思路),这篇文章继续沿着上一篇文章的内容,给大家讲解下数据采集预处理字符图切割内容。二、数据采集
数据采集:根据图片验证码链接进行批量下载图片,最开始时下载个20张先进行手动改文件名进行标注,下载这块代码编写不难,这里不贴代码了,见imagedownload。py文件。三、预处理
预处理:根据需求分析中的字符切割描述,针对笔者的图片验证码案例情况,需要先进行常规验证码图片预处理,预处理通过OpenCV库实现,处理过程为:原始图灰度图中值滤波二值化轮廓检测绘制(部分情况才可以加)字符切割填充
大概过程功能简单描述如下,详细原理可以参考OpenCV相关文章和视频,引用链接:〔3。OpenCV文章专栏〕(https:blog。csdn。netyukinoaicategory9283880。html)〔4。OpenCVPython视频〕(https:www。bilibili。comvideoBV1tb4y1C7j7)
原始图(RGB)转灰度图:去除颜色信息,减少图片大小,单通道值方便滤波处理。读者可以脑洞一下,不去除颜色信息,能提取到指定字符颜色的轮廓吗?
灰度图中值滤波:进行噪音去除,取中间像素平均值
二值化:只留下0、255二种值,方便轮廓检测
轮廓检测:这一步主要用于提取字符轮廓矩形坐标,不适合字符挨得特别紧的情况
字符切割填充:根据生成的字符轮廓图片矩形坐标进行切割再填充对齐到指定宽高
具体执行效果如下:
下面是预处理过程部分核心代码,详细代码见imagesplit。py文件。defpreprocessimage(img,filename):去除边缘imgimg〔2:2,2:2〕print(img。shape)得到灰度图graycv2。cvtColor(img,cv2。COLORBGR2GRAY)show(gray,gray)去除噪音blurcv2。medianBlur(gray,3)show(blur,blur)tempgray。mean()。item()二值化ret,thresholdcv2。threshold(blur,temp,255,cv2。THRESHBINARY)show(threshold,threshold)保存二值化图片ifISSAVEFILE:cv2。imwrite(DSTIMGDIRfilenamethreshold。png,threshold)returnthreshold
执行图片预处理程序后具体效果图13如下:
轮廓检测绘制结果1:
根据图片轮廓进行字符切割结果2:
根据字符切割图片进行文件分类结果3:
以上就是字符图片切割的全部过程了,核心过程代码如下:defsplitimage(filepath):filenamegetfilename(filepath)imgreadimage(filepath)验证码预处理thresholdpreprocessimage(img,filename)查找轮廓边界列表contoursfindcounters(threshold)过滤合适的轮廓矩形列表rectlist,resultrectgetfilterrect(contours,img,filename)分割矩形图片returnsplitrectimg(filepath,threshold,rectlist,resultrect)
详细代码可以阅读源码,这里说一下这个过程中笔者编写预处理代码遇到的几个问题:部分图片轮廓检测可以检测到多个轮廓,部分图片只有12个轮廓,部分可能一个轮廓都没有,这里代码进行了相应的调整处理,比如过滤大的外部轮廓和较小的内部轮廓,根据剩下的轮廓进行坐标排序,根据部分坐标得到所有字符轮廓得到4个字符轮廓图片后,每个图片大小不一致,需要进行大小补齐,这个宽高参数需要根据数据集进行调整
以上就是数据采集预处理的实现过程了,这里稍微说下学习OpenCV相关知识过程的情况,笔者是采用文章视频间断性学习,大概是2040个小时左右,然后再开始写具体字符图片切割的代码,读者可根据自己的时间安排学习速度,建议工具类的东西是快速学习,现学现用。好的,接下来介绍高效率、可复用的通用图片验证码数据标注功能实现。四、总结
我是Snowball。这篇内容主要讲解了常用验证码标注识别的数据采集预处理的实现过程。下一篇文章,小编给大家介绍高效率、可复用的通用图片验证码数据标注功能实现。
小伙西安回民街金属丝编名字吸引年轻人围观情侣买一对送彼此一个挂满金光闪闪、色彩缤纷小挂件的摊位在西安回民街上格外引人注目。摊主是个小伙子,这些独特的小挂件都是出自他手。仔细一看,发现原来每个挂件主要是由不同的姓名组成的,姓名中……
盘点韩国十大性感好身材女星排行宋智孝夺最美身材女艺人在韩国娱乐圈,很多当红女星都有好身材,像苏智孝、金惠秀、全智贤、金莎朗都拥有性感曼妙好身材。今天,小编就为大家盘点韩国十大性感好身材当红女星。1、宋智孝韩国热门综艺……
造车第四块屏幕的争夺战科技企业争夺的不仅仅是用户数,更为重要的是占据用户的时间,这是很重要的认识。在线化的时代里,消耗用户时间占比最大的已经是一块块屏幕了,甚至可以说:用户眼前的屏幕,比用户自身还了……
周游记什么时候播出周游记播出平台有哪些周杰伦综艺节目《周游记》已经定档了,从周杰伦发新歌,再到周杰伦拍电影,现在又来上综艺节目,这真是满足粉丝的各项需求啊!这不,新综艺《周游记》定档了,一起来期待一下吧!周游……
眷思量什么时候上映眷思量在什么平台上映最近又官宣了一部国产动漫《眷思量》,最近剧荒的小伙伴可以去追一下这部动漫哟,那么眷思量什么时候上映呢?以及眷思量在什么平台上映?接下来就让小编为大家介绍一下吧。1眷思量什……
小德夺温网冠军夺第9个大满贯冠军(图)北京时间7月12日晚,2015年温布尔登网球公开赛男单决赛火爆上演,小德和费德勒连续第二年相遇。小德虽然在第二盘错失七个盘点告负,但最终还是以76(1)67(10)6463击败……
青春有你2赛制惹争议实力与评级不符究竟是何原由近段时间以来,随着《青春有你2》的播出,在网上的讨论声是相当的大,自从播出以来几乎每一期都会有热搜上线,就在近日,关于《青春有你2》的赛制又上了热搜,备受广大网友的争议,实力与……
大头儿子被侵权具体侵权详情怎么回事曝光说起《大头儿子和小头爸爸》,相信大家都很熟悉,其生动的动漫形象深入人心,陪伴着一代少儿的成长,而这部经典动漫IP也未能避免被侵权的命运。近期,北京市朝阳区人民法院对杭州大……
婚礼中前男友混入新郎家和新娘吻别,被新郎发现,成果婚礼中前男友混入新郎家和新娘吻别,被新郎发现,成果闹年前是成婚的高峰期。一个朋友在前几天举办婚礼,按说成婚是人生最大的喜事,应该高高兴兴才对,但是朋友的婚礼还没有开……
你好星期六什么时候播出,你好星期六的主持人你好星期六说出来很多人不清楚,可你好星期六综艺是什么时候播出,很多网友就想去了解一下有关的故事,看你好星期六提早公布节目的预告,来让观众能熟悉要进行的情节,但有的网友就不清楚你……
她吃了几瓣蒜,一天之内身体发生了美妙的改变吃下几瓣蒜,一天之内燃脂灭菌、清洁身体,赶忙看看这些美妙的改变!大蒜这么厉害,但你吃对了吗?蒜这样吃才健康,加上一物养分好吸收,你必定要知道……
乘风破浪的姐姐全体阵容官宣完毕你最pick哪一个呢近日,综艺节目《乘风破浪的姐姐》最后一组阵容已经官宣了,到目前为止,乘风破浪的姐姐全体阵容已经官宣完毕了,在这些姐姐们当中,你最pick哪一个呢?一起来看一下具体的情况。1乘风……