本发明涉及图像识别技术,尤其涉及图文识别方法及其装置。
背景技术:
现在互联网中,由于各种安全因素,诸多网站都需要进行验证码验证;验证码一般包含多个验证码字符信息的图片,可是验证码给登录造成了不便,所以需要自动识别验证码中的字符,以方便用户浏览网站更方便。
技术实现要素:
为了克服现有技术的不足,本发明的目的之一在于提供一种图文识别方法,其能自动识别验证码字符。
本发明的目的之二在于提供一种图文识别装置,其能自动识别验证码字符。
本发明的目的之一采用以下技术方案实现:
一种图文识别方法,包括如下步骤:
S1、获取待识别图片;
S2、对待识别图片进行二值化处理;
S3、删除待识别图片中所有像素点均为白点的像素行,以及删除待识别图片中所有像素点均为白点的像素列,得到若干个子图;
S4、获取匹配库中所有的素材图,计算子图和任一素材图的重合度,获取重合度最高的素材图所对应的的字符,并获取若干个子图分别对应的若干个字符;匹配库中存有每个素材图和其对应的字符的关联关系。
作为优选,在S2之后还包括如下步骤:S21、对待识别图片进行滤波处理。
作为优选,S21中的滤波处理具体包括:选取待识别图片中任一像素点,当该像素点和该像素点周围的八个像素点中为黑点的像素点的数量少于三个时,将该像素点变为白点。
作为优选,S2中的二值化处理具体包括如下子步骤:
S201、选取待识别图片中任意一个像素点,计算该像素点的灰度值以及该像素点周围的八个像素点的八个灰度值的平均灰度值;
S202、判断该像素点的灰度值是否大于平均灰度值,如果是则将该像素点变为白点,否则将该像素点变为黑点。
作为优选,S4之后还包括如下步骤:S5、将若干个字符发送至网站,以使网站验证若干个字符是否正确。
本发明的目的之二采用以下技术方案实现:
一种图文识别装置,包括:
获取模块,用于获取待识别图片;
二值化模块,用于对待识别图片进行二值化处理;
切图模块,用于删除待识别图片中所有像素点均为白点的像素行,以及删除待识别图片中所有像素点均为白点的像素列,得到若干个子图;
匹配模块,用于获取匹配库中所有的素材图,计算子图和任一素材图的重合度,获取重合度最高的素材图所对应的的字符,并获取若干个子图分别对应的若干个字符;匹配库中存有每个素材图和其对应的字符的关联关系。
作为优选,还包括滤波模块,用于对待识别图片进行滤波处理。
作为优选,滤波模块中的滤波处理具体包括:选取待识别图片中任一像素点,当该像素点和该像素点周围的八个像素点中为黑点的像素点的数量少于三个时,将该像素点变为白点。
作为优选,二值化模块中的二值化处理具体包括:选取待识别图片中任意一个像素点,计算该像素点的灰度值以及该像素点周围的八个像素点的八个灰度值的平均灰度值;判断该像素点的灰度值是否大于平均灰度值,如果是则将该像素点变为白点,否则将该像素点变为黑点。
作为优选,还包括提交模块,用于将若干个字符发送至网站,以使网站验证若干个字符是否正确。
相比现有技术,本发明的有益效果在于:通过计算待识别图片的子图和匹配库中的素材图的重合度,选择重合度最高的以获取待识别图片中的字符信息,识别准确度更高。
附图说明
图1为本发明图文识别方法的流程图;
图2为本发明图文识别装置的模块连接图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
图文识别方法,如图1所示,包括如下步骤:
步骤10、从网站上获取待识别图片;待识别图片即验证码图片,待识别图片包含若干个验证码信息。
步骤11、对待识别图片进行二值化处理生成黑白图片;黑白图片包含若干个二值化的验证码信息。
所述二值化处理具体为:选取待识别图片中任意一个像素点,获取该像素点的灰度值以及该像素点周围的八个像素点的八个灰度值,计算该像素点和周围的八个像素点的平均灰度值;
判断该像素点的灰度值是否大于平均灰度值,如果是则将该像素点的灰度值改为255,否则将该像素点的灰度值改为0;
灰度值为0时,该像素点为黑点;灰度值为255时,该像素点为白点;黑白图片中,包含验证码信息的区域的像素点为黑色。
步骤12、对黑白图片进行滤波处理生成去噪图片;去噪图片包含若干个二值化且去噪的验证码信息。
所述滤波处理具体为:选取黑白图片中任意一个像素点,当该像素点和该像素点周围的八个像素点中为黑点的像素点的数量少于三个时,将该像素点的灰度值改为255;去噪图片中,包含验证码信息的区域的像素点为黑色,其他区域为白色。
步骤13、将去噪图片进行切割处理成若干个子图;
所述切割处理具体为:
横向扫描去噪图片的任意一行像素行,如果该像素行中所有像素点均为白点,则删除该像素行;直到去噪图片中所有白色像素行删除;
纵向扫描去噪图片的任意一列像素列,如果该像素列中所有像素点均为白色,则删除该像素行;直到去噪图片中所有白色像素列删除;
白色像素列和白色像素行均被删除后,去噪图片切割成若干个包含验证码信息的子图。
步骤14、获取匹配库中所有素材图,一一计算子图和任一素材图的重合度,获取重合度最高的素材图所对应的字符,定义该子图所包含的验证码信息为该字符;
获取子图中任意一个像素点的像素值,以及获取素材图中相同位置的像素点的像素值,判断两个像素值是否一致,如果是则重合,否则不重合,判断子图中所有像素点是否和素材图的所有像素点重合,以得到重合度;
匹配库中存有若干素材图以及若干素材图所对应的字符的关联关系;
将若干个子图一一与匹配库中所有的素材图计算重合度,获取与若干个子图对应的若干个字符。
步骤15、将若干个字符发送至网站,以使网站验证若干个字符是否正确。
所述匹配库的建立方法为:通过步骤10、步骤11、步骤12和步骤13处理得到若干个子图;选取任意一个子图,人工识别子图中包含的验证码信息所对应的字符,将该子图和对应的字符存入匹配库,该子图即素材图;不断获取网站上的包含验证码信息的待识别图片,并不断生成素材图及其对应的字符存入匹配库,使匹配库中的素材图和其对应的字符越来越丰富。
图文识别装置,如图2所示,包括:
获取模块,用于从网站上获取待识别图片;所述待识别图片包含若干个验证码信息。
二值化模块,用于对待识别图片进行二值化处理生成黑白图片;黑白图片包含若干个二值化的验证码信息;所述二值化处理具体为:选取待识别图片中任意一个像素点,获取该像素点的灰度值以及该像素点周围的八个像素点的八个灰度值,计算该像素点和周围的八个像素点的平均灰度值;判断该像素点的灰度值是否大于平均灰度值,如果是则将该像素点的灰度值改为255,否则将该像素点的灰度值改为0;灰度值为0时,该像素点为黑点;灰度值为255时,该像素点为白点;黑白图片中,包含验证码信息的区域的像素点为黑色。
滤波模块,用于对黑白图片进行滤波处理生成去噪图片;去噪图片包含若干个二值化且去噪的验证码信息;所述滤波处理具体为:选取黑白图片中任意一个像素点,当该像素点和该像素点周围的八个像素点中为黑点的像素点的数量少于三个时,将该像素点的灰度值改为255;去噪图片中,包含验证码信息的区域的像素点为黑色,其他区域为白色。
切图模块,用于将去噪图片进行切割处理成若干个子图;所述切割处理具体为:横向扫描去噪图片的任意一行像素行,如果该像素行中所有像素点均为白点,则删除该像素行;直到去噪图片中所有白色像素行删除;纵向扫描去噪图片的任意一列像素列,如果该像素列中所有像素点均为白色,则删除该像素行;直到去噪图片中所有白色像素列删除;白色像素列和白色像素行均被删除后,去噪图片切割成若干个包含验证码信息的子图。
匹配模块,用于获取匹配库中所有素材图,计算子图和任一素材图的重合度,获取重合度最高的素材图所对应的字符,定义该子图所包含的验证码信息为该字符;获取子图中任意一个像素点的像素值,以及获取素材图中相同位置的像素点的像素值,判断两个像素值是否一致,如果是则重合,否则不重合,判断子图中所有像素点是否和素材图的所有像素点重合,以得到重合度;匹配库中存有若干素材图以及若干素材图所对应的字符的关联关系;将若干个子图一一与匹配库中所有的素材图计算重合度,获取与若干个子图对应的若干个字符。
提交模块,用于将若干个字符发送至网站,以使网站验证若干个字符是否正确。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。