# -概要
本项目基于MATLAB完成数字验证码识别的GUI设计,图像处理,验证码生成、识别等功能。采用BP神经网络来实现对验证码图像的识别。验证码的识别,大概分为图片预处理、分割字符、识别字符三个过程,其中分割字符最为困难。本文采用基于遗传算法和最大熵优化的图像分割技术、大津法(OTSU)、自定义阈值三种技术进行字符分割,并作进一步分析。利用英国萨里大学提供的印刷体数字数据集,共10160张图片,90%的数据用于训练BP神经网络,剩余10%的数据用于测试,最终识别准确率达到93.47%,利用训练所得BP模型完成识别字符,最终验证码图像识别效果较佳。
# -成果
![image-20220121112741055](./md_img/image-20220121112741055.png)
# -说明
1. 项目内img目录下为0-9十类数字图片各1016张,code_source为验证码生成所用0-9十类数字图片各10张,code_img为生成的验证码图片,md_img存放README.md所用的图片。项目内"\*.m"皆为MATLAB源代码文件,"\*.mat"为已处理好的数据文件。
2. 程序内所有路径为必填项,若没有路径单击对于按钮将弹出警告框;
3. 程序内BPNN的参数都有默认取值,若不填写则按默认取值,如图,鼠标悬停输入框内,出现提示信息。
![image-20220121113408784](./md_img/image-20220121113408784.png)
同样的,验证码个数及灰度值都有默认取值。但是要注意,训练样本占比为必填项,没有默认取值。
4. 若项目路径下已有数据集文件,包括训练集、测试集数据,如“X_train.mat”时,不需要重新创建数据集再分割,单击载入已有数据按钮,设定参数即可继续。
5. 程序做了一定的异常处理,错误操作均会弹出提示信息(输入数据并没有作校验~~)。
6. 由于图片数据大,创建分割训练集、测试集耗时很长~~~~
# -演示
1. 打开MATLAB,运行“appgui.m”文件,即出现程序的主界面。
2. 第一模块“BPNN模型构建”中,在创建数据集中输入数据路径,**注意填入绝对路径,且最后必须有'\\'**,单击确定,弹出窗口,实时显示当前处理的图片。当创建数据集完成后,弹出提示框提示创建成功。将在项目路径下生成文件“inputs.mat”、“outputs.mat”。
<img src="./md_img/image-20220121114557125.png" alt="image-20220121114557125" style="zoom: 50%;" />
3. 第一模块“BPNN模型构建”中,在分割数据集中输入训练样本占比(小数形式),单击确定,等待分割完成。将在项目路径下生成文件“X_train.mat”、“y_train.mat”、“X_test.mat”、“y_test.mat”。
4. 第一模块“BPNN模型构建”中,在参数设定及网络训练中输入各个参数的值,单击训练,神经网络训练完成后,将在项目路径下生成文件“bp.mat”。
5. 第一模块“BPNN模型构建”中,单击测试,不可编辑的文本框内将产生测试结果。
6. 若对测试结果不满意,可返回步骤4,重新设定参数,重新训练网络。
7. 第二模块“生成验证码”中,输入字符数据路径,单击生成数据集,稍等片刻,将在项目路径下生成文件“codeInputs.mat”、“codeOutputs.mat”。
8. 第二模块“生成验证码”中,输入验证码存储路径,输入验证码个数,单击生成验证码,等待弹出提示框。即可在存储路径下生成指定个数的验证码图片。
![image-20220121115042533](./md_img/image-20220121115042533.png)
9. 第二模块“识别验证码”中,单击选择验证码按钮,选择一张验证码图片。单击识别按钮即可完成验证码识别。
10. 当验证码识别效果不佳时,可采用其他二值化方法,在二值化区域右侧的弹出式菜单可以选择二值化方法,若改用自定义level,默认取值0.9。再次点击识别即可重新识别验证码。
11. 若默认灰度level二值化效果同样不佳,此时可以修改灰度level取值。重新点击识别即可。
# -不足
由于验证码种类繁多,目前的验证码识别应用往往只能识别一类验证码,不具有普遍性。本文所完成的验证码识别仅仅**针对非粘连的数字验证码**,应用领域受限。毫无疑问,粘连验证码的字符分割与识别将更为困难,本项目尚未涉及该部分内容,这也是目前存在的不足之处。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
# -演示 1. 打开MATLAB,运行“appgui.m”文件,即出现程序的主界面。 2. 第一模块“BPNN模型构建”中,在创建数据集中输入数据路径,**注意填入绝对路径,且最后必须有'\\'**,单击确定,弹出窗口,实时显示当前处理的图片。当创建数据集完成后,弹出提示框提示创建成功。将在项目路径下生成文件“inputs.mat”、“outputs.mat”。 <img src="./md_img/image-20220121114557125.png" alt="image-20220121114557125" style="zoom: 50%;" /> 3. 第一模块“BPNN模型构建”中,在分割数据集中输入训练样本占比(小数形式),单击确定,等待分割完成。将在项目路径下生成文件“X_train.mat”、“y_train.mat”、“X_test.mat”、“y_test.mat”。 4. 第一模块“BPNN模型构建”中,在参数设定及网络训练中输入各个参数的值,单击训练,神经网络训练完成后,将在项目路径下生成文件“bp.mat”。 5. 第一模块“BPNN模
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-基于MATLAB完成数字验证码识别的GUI设计,图像处理,验证码识别等功能,采用多种方法完成图像二值化 (2000个子文件)
appgui.fig 170KB
buildDataGui.fig 21KB
LICENSE 1KB
appgui.m 34KB
buildDataGui.m 4KB
cutting.m 3KB
getCode.m 3KB
buildCodeSet.m 3KB
builddataset.m 3KB
ksw_ga_improve1.m 2KB
testcode.m 1KB
split_train_test.m 1KB
select_ga_improve.m 945B
ksw.m 659B
mutation_ga_improve.m 546B
cross_ga_improve.m 510B
bpann.m 478B
testbp.m 431B
trainbp.m 275B
X_test.mat 117KB
y_train.mat 598B
y_test.mat 265B
codeOutputs.mat 206B
README.md 5KB
image-20220121112741055.png 356KB
image-20220121115042533.png 192KB
image-20220121113408784.png 59KB
image-20220121114557125.png 32KB
img001-00483.png 2KB
img001-00011.png 2KB
img009-00191.png 2KB
img001-00191.png 2KB
img009-00011.png 2KB
img009-00189.png 2KB
img009-00009.png 2KB
img001-00009.png 2KB
img001-00481.png 2KB
img001-00503.png 2KB
img001-00189.png 1KB
img009-00215.png 1KB
img009-00483.png 1KB
img001-00263.png 1KB
img009-00481.png 1KB
img001-00401.png 1KB
img001-00501.png 1KB
img009-00213.png 1KB
img001-00502.png 1KB
img001-00215.png 1KB
img001-00504.png 1KB
img009-00216.png 1KB
img009-00211.png 1KB
img001-00463.png 1KB
img001-00801.png 1KB
img001-00261.png 1KB
img009-00501.png 1KB
img001-00264.png 1KB
img001-00387.png 1KB
img009-00261.png 1KB
img001-00213.png 1KB
img009-00263.png 1KB
img001-00403.png 1KB
img009-00403.png 1KB
img001-00262.png 1KB
img001-00293.png 1KB
img001-00951.png 1KB
img009-00209.png 1KB
img001-00141.png 1KB
img009-00504.png 1KB
img009-00387.png 1KB
img009-00503.png 1KB
img009-00192.png 1KB
img009-00063.png 1KB
img001-00339.png 1KB
img001-00343.png 1KB
img001-00015.png 1KB
img009-00264.png 1KB
img001-00223.png 1KB
img001-00211.png 1KB
img001-00385.png 1KB
img001-00687.png 1KB
img001-00989.png 1KB
img009-00293.png 1KB
img009-00107.png 1KB
img009-00401.png 1KB
img001-00143.png 1KB
img001-00055.png 1KB
img001-00161.png 1KB
img001-00163.png 1KB
img001-00303.png 1KB
img001-00224.png 1KB
img001-00271.png 1KB
img001-00464.png 1KB
img009-00339.png 1KB
img001-00216.png 1KB
img001-00072.png 1KB
img009-00115.png 1KB
img009-00116.png 1KB
img001-00105.png 1KB
img001-00402.png 1KB
img001-00152.png 1KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
小风飞子
- 粉丝: 364
- 资源: 1966
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java毕业设计-基于SSM框架的传统服饰文化体验平台【代码+部署教程】
- 优化领域的模拟退火算法详解与实战
- NewFileTime-x64.zip.fgpg
- 基于Python和HTML的Chinese-estate-helper房地产爬虫及可视化设计源码
- 基于SpringBoot2.7.7的当当书城Java后端设计源码
- 基于Python和Go语言的开发工具集成与验证设计源码
- 基于Python与JavaScript的国内供应商管理系统设计源码
- aspose.words-20.12-jdk17
- 基于czsc库的Python时间序列分析设计源码
- 基于Java、CSS、JavaScript、HTML的跨语言智联平台设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功