《一种验证码识别方法.pdf》由会员分享,可在线阅读,更多相关《一种验证码识别方法.pdf(7页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 101944177 A (43)申请公布日 2011.01.12 CN 101944177 A *CN101944177A* (21)申请号 201010268533.X (22)申请日 2010.08.30 G06K 9/00(2006.01) G06K 9/60(2006.01) (71)申请人 深圳市多赢软件技术有限公司 地址 518049 广东省深圳市福田区梅华路 105 号多丽科技楼 5 层 0504 房 (72)发明人 刘国炯 张代军 (54) 发明名称 一种验证码识别方法 (57) 摘要 本发明公开了一种验证码识别方法, 包括步 骤 : A1、 将验证码。
2、图像数据加载到内存中 ; A2、 对 所述验证码图像进行二值化处理, 得到二值化图 像数据 ; A3、 对所述二值化图像数据进行取反处 理, 得到取反图像数据 ; A4、 对所述取反图像数据 进行去除边框处理, 得到无边框图像数据 ; A5、 对 所述无边框图像数据进行去除干扰点处理, 得到 最终图像数据 ; A6、 调用 OCR 识别程序对所述最 终图像数据进行字符识别。本发明验证码识别方 法通过对有干扰点和背景色的验证码进行正确识 别, 确保了自动化测试流程的顺利进行, 提高了自 动化测试的工作效率。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利。
3、要求书 1 页 说明书 4 页 附图 1 页 CN 101944184 A1/1 页 2 1. 一种验证码识别方法, 其特征在于, 包括步骤 : A1、 将验证码图像数据加载到内存中 ; A2、 对所述验证码图像进行二值化处理, 得到二值化图像数据 ; A3、 对所述二值化图像数据进行取反处理, 得到取反图像数据 ; A4、 对所述取反图像数据进行去除边框处理, 得到无边框图像数据 ; A5、 对所述无边框图像数据进行去除干扰点处理, 得到最终图像数据 ; A6、 调用 OCR 识别程序对所述最终图像数据进行字符识别。 2. 根据权利要求 1 所述的验证码识别方法, 其特征在于, 所述步骤 A。
4、2 包括步骤 : 按照 灰度变换公式 Y 0.3*R+0.59*G+0.11*B 确定灰度变换矩阵, 其中 R、 G、 B 的取值范围为 0 到 255 的正整数。 3. 根据权利要求 2 所述的验证码识别方法, 其特征在于, 所述步骤 A2 包括步骤 : 根据 公式 : 确定二值化阀值, 其中 m 为二值化阀值, f 为输入图像, n 为所有像素的数目, f(x, y) 为 坐标 (x, y) 处像素点的灰度值。 4. 根据权利要求 3 所述的验证码识别方法, 其特征在于, 所述步骤 A3 包括步骤 : 按照 取反变换公式 Y -1*R+-1*G+-1*B 确定取反变换矩阵, 其中 R、 G。
5、、 B 的取值范围为 0 到 255 的正整数。 5. 根据权利要求 4 所述的验证码识别方法, 其特征在于, 所述步骤 A4 包括步骤 : 通过 在指定宽度的矩形区域填充白色像素点数据对所述取反图像数据进行去除边框处理。 6. 根据权利要求 5 所述的验证码识别方法, 其特征在于, 所述步骤 A5 包括步骤 : 对所 述无边框图像数据的每一个像素点数据进行遍历, 判断其四周是否都为白色像素点数据, 如果是则将该像素点数据改为白色像素点数据。 权 利 要 求 书 CN 101944177 A CN 101944184 A1/4 页 3 一种验证码识别方法 技术领域 0001 本发明涉及图像处理。
6、技术领域, 具体涉及一种有干扰点和背景色的验证码识别方 法。 背景技术 0002 验 证码 (CAPTCHA) 是 “Completely Automated Public Turing test to tell Computers and Humans Apart” ( 全自动区分计算机和人类的图灵测试 ) 的缩写, 是一种用 于区分计算机和人的公共全自动程序。验证码一般通过将一串随机产生的数字或符号, 生 成一幅图片, 图片里加上一些干扰元素, 例如干扰点, 由用户肉眼识别其中的验证码信息, 输入表单提交网站验证, 验证成功后才能使用某项功能。因此通过验证码可以防止恶意破 解密码、 刷票、。
7、 论坛灌水, 有效防止某个黑客对某一个特定功能用特定程序暴力破解方式进 行不断的登陆尝试, 提高网站的安全性。实际开发网站系统中基于安全性考虑必须要引入 验证码, 但验证码的引入却阻碍测试人员利用自动化测试工具对系统进行自动化测试工 作, 现有技术的自动化测试工具大多采用 OCR(Optical Character Recognition, 光学字符 识别 ) 技术, 只能对无干扰杂色、 白色背景、 深色字体等简单验证码进行自动识别, 而在实 际网站系统开发中都会采用具有一定干扰点、 不同颜色背景的验证码, 现有技术自动化测 试工具的验证码识别方法亟待改进。 发明内容 0003 本发明要解决的。
8、技术问题是提供一种验证码识别方法, 克服现有技术自动化测试 工具验证码识别方法无法对有干扰点和背景色的验证码进行识别的缺陷。 0004 本发明为解决上述技术问题所采用的技术方案为 : 0005 一种验证码识别方法, 包括步骤 : 0006 A1、 将验证码图像数据加载到内存中 ; 0007 A2、 对所述验证码图像进行二值化处理, 得到二值化图像数据 ; 0008 A3、 对所述二值化图像数据进行取反处理, 得到取反图像数据 ; 0009 A4、 对所述取反图像数据进行去除边框处理, 得到无边框图像数据 ; 0010 A5、 对所述无边框图像数据进行去除干扰点处理, 得到最终图像数据 ; 00。
9、11 A6、 调用 OCR 识别程序对所述最终图像数据进行字符识别。 0012 所述的验证码识别方法, 其中所述步骤 A2 包括步骤 : 按照灰度变换公式 Y 0.3*R+0.59*G+0.11*B 确定灰度变换矩阵, 其中 R、 G、 B 的取值范围为 0 到 255 的正整数。 0013 所述的验证码识别方法, 其中所述步骤 A2 包括步骤 : 根据公式 : 0014 0015 确定二值化阀值, 其中 m 为二值化阀值, f 为输入图像, n 为所有像素的数目, f(x, y) 为坐标 (x, y) 处像素点的灰度值。 说 明 书 CN 101944177 A CN 101944184 A。
10、2/4 页 4 0016 所述的验证码识别方法, 其中所述步骤 A3 包括步骤 : 按照取反变换公式 Y -1*R+-1*G+-1*B 确定取反变换矩阵, 其中 R、 G、 B 的取值范围为 0 到 255 的正整数。 0017 所述的验证码识别方法, 其中所述步骤 A4 包括步骤 : 通过在指定宽度的矩形区域 填充白色像素点数据对所述取反图像数据进行去除边框处理。 0018 所述的验证码识别方法, 其中所述步骤 A5 包括步骤 : 对所述无边框图像数据的每 一个像素点数据进行遍历, 判断其四周是否都为白色像素点数据, 如果是则将该像素点数 据改为白色像素点数据。 0019 本发明的有益效果 。
11、: 本发明验证码识别方法通过对有干扰点和背景色的验证码进 行正确识别, 确保了自动化测试流程的顺利进行, 提高了自动化测试的工作效率。 附图说明 0020 本发明包括如下附图 : 0021 图 1 为本发明验证码识别方法流程图 ; 0022 图 2 为本发明实施例验证码图像 ; 0023 图 3 为本发明实施例二值化处理后的验证码图像 ; 0024 图 4 为本发明实施例取反处理后的验证码图像 ; 0025 图 5 为本发明实施例去除边框处理后的验证码图像 ; 0026 图 6 为本发明实施例去除干扰点处理后的验证码图像。 具体实施方式 0027 下面根据附图和实施例对本发明作进一步详细说明 。
12、: 0028 如图 1 所示, 本发明验证码识别方法, 包括步骤 : 0029 A1、 将验证码图像数据加载到内存中 ; 0030 A2、 对所述验证码图像进行二值化处理, 得到二值化图像数据 ; 0031 A3、 对所述二值化图像数据进行取反处理, 得到取反图像数据 ; 0032 A4、 对所述取反图像数据进行去除边框处理, 得到无边框图像数据 ; 0033 A5、 对所述无边框图像数据进行去除干扰点处理, 得到最终图像数据 ; 0034 A6、 调用 OCR 识别程序对所述最终图像数据进行字符识别。 0035 (1) 加载验证码图像 0036 输入验证码图片地址, 通过 DownLoadI。
13、mage 函数, 下载验证码图片流数据, 并保存 到 Windows 中 GDI+(Graphics Device Interface 的缩写, 是图形设备接口的意思 )TImage 类的一个 CodeImage 变量中, 下载的验证码原图如图 2 所示。根据 GDI+ 描述 TImage 存储 原理图像按每个像素的颜色都存储为32位的数 : 红色(R)、 绿色(G)、 蓝色(B)和透明度(A) 各占 8 位。颜色矢量采用 4 元组形式 ( 红色、 绿色、 蓝色、 alpha)。例如, 颜色矢量 (0, 255, 0, 255)表示一种没有红色和蓝色但绿色达到最大亮度的不透明颜色。 颜色矢量可。
14、以旋转和 缩放等线性变换, 而GDI+中为了实现颜色矢量的平移等非线性变换, 约定一个55矩阵应 用任何组合形式的线性变换和平移。 0037 (2) 图像二值化处理 0038 验证码的原图是一个黑色背景、 紫色边框、 红色文字和杂色干扰点的彩色图片, 需 说 明 书 CN 101944177 A CN 101944184 A3/4 页 5 要先变成灰度图像, GDI+ 函数中已经提供颜色变换功能, 但需要定义灰度变换矩阵, 按照 颜色空间原理中灰度变换公式 Y 0.3*R+0.59*G+0.11*B( 其中 R、 G、 B 的取值范围为 0 255) 得到灰度变换矩阵如下 : 0039 flo。
15、atGrayMX 0040 new float0.3f, 0.3f, 0.3f, 0, 0, 0041 new float0.59f, 0.59f, 0.59f, 0, 0, 0042 new float0.11f, 0.11f, 0.11f, 0, 0, 0043 new float0, 0, 0, 1, 0, 0044 new float0, 0, 0, 1, 0 ; 0045 根据上面变换矩阵, 调用 GDI+ 中的灰度变换方法进行处理图像, GDI+ 灰度变换原 理为对图像每一个像素点的颜色矢量进行线性变换 ( 即为乘法运算的累积和 ), 得到新的 像素点, 形成变换后灰度图像。 00。
16、46 根据上面的得到的灰度图像, 需要设定阀值进行二值化处理, 此例采用平均灰度 值法计算二值化阀值, 所用公式如下 : 0047 0048 其中 m 为二值化阀值, f 为输入图像, n 为所有像素的数目, f(x, y) 为坐标 (x, y) 处像素点的灰度值。此例子中计算阀值为 20。 0049 根据图像二值化算法, 像素点的灰度值高于 20 的像素设置为 1, 即颜色矢量为 (255, 255, 255, 255), 低于 20 的像素设置为 0, 即颜色矢量为 (0, 0, 0, 255)。利用 GDI+ 中图 像处理函数, 按照设置灰度变换矩阵和阀值参数, 得到的二值化图像如图 3。
17、 所示。 0050 (3) 图像取反色处理 0051 根据 (2) 中得到的二值化图像, 还是存在黑色背景, 因此需要进行图像取反处理 ; 对二值化图像取反其实就将黑、 白色像素点互换处理, 按照颜色空间原理中取反变换公式 Y -1*R+-1*G+-1*B( 其中 R、 G、 B 的取值范围为 0 255) 得到取反变换矩阵如下 : 0052 floatInvertMX 0053 new float-1, 0, 0, 0, 0, 0054 new float0, -1, 0, 0, 0, 0055 new float0, 0, -1, 0, 0, 0056 new float0, 0, 0, 。
18、1, 0, 0057 new float1, 1, 1, 0, 1 ; 0058 根据上面的变换矩阵, 对图像每一个像素点的颜色矢量进行线性变换 ( 即为乘法 运算的累积和 ), 得到新的像素点, 形成变换后的取反图像如图 4 所示。 0059 (4) 去除图像边框 0060 去除图像边框算法比较简单, 主要通过设置图像四周要去除的像素宽度, 通过 Graphics类的FillRectangle函数将四周指定宽度的矩形区域填充成白色像素即可。 本例 子中将上、 下、 左、 右去除的像素宽度都设置为 2, 去除边框后的图像如图 5 所示。 0061 (5) 去干扰点处理 0062 由于一个图片是。
19、有一个一个像素点组成的, 而对于 Windows 下的位图一个像素点 说 明 书 CN 101944177 A CN 101944184 A4/4 页 6 四周最多有 8 个像素点, 而对于图片中的字符像素一般都是连接的像素点。根据这个特性 可以将四周都为白色像素点的像素点, 认定为干扰像素点。 因此去除干扰点算法为 : 加载步 骤 (4) 处理后的图像到 Bitmap 位图对象中, 通过遍历图像的每一个像素, 并判断其四周是 否都为白色像素点, 如果是将其改为白色像素点。去除干扰点处理后的图像如图 6 所示。 0063 (6) 调用 OCR 识别 API 0064 加载 OCR 识别库文件,。
20、 调用图像识别 API 函数对步骤 (5) 处理后的图像进行识别, 得到字符串 “UWDF” , 完成对验证码的自动识别。有干扰点和背景色的验证码都可以参照此 实例实现识别。 0065 利用本发明提出的方案, 可以开发验证码图像处理的 DLL(Dynamic Link Library, 动态链接库 ) 库文件, 负责对验证码图像进行识别前的处理工作 ; 而自动化测试 人员可以通过QTP(QuickTest Professional的简称, 一种自动测试工具)本身的扩展编程 功能, 调用验证码图像处理的 DLL 和 OCR 的 API, 完成自动测试过程中对待测试网站验证码 的自动识别, 确保自动化测试流程的顺利进行。 0066 本领域技术人员不脱离本发明的实质和精神, 可以有多种变形方案实现本发明, 以上所述仅为本发明较佳可行的实施例而已, 并非因此局限本发明的权利范围, 凡运用本 发明说明书及附图内容所作的等效结构变化, 均包含于本发明的权利范围之内。 说 明 书 CN 101944177 A CN 101944184 A1/1 页 7 图 1 图 2 图 3 图 4 图 5 图 6 说 明 书 附 图 CN 101944177 A 。