热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

数字验证码识别

1程序整体功能及模块介绍本设计为基于MATLAB的数字验证码识别,通过一个GUI界面来进行实时交互。可以识别带有噪声的数字验证码。流程为:打开图像文件

1 程序整体功能及模块介绍

本设计为基于 MATLAB 的数字验证码识别,通过一个 GUI 界面来进行实时交互。可以识别带有噪声的数字验证码。流程为:打开图像文件,显示图片,用颜色分量的方法将噪声去除,得到去噪后图像,利用连通域法进行字符分割,提取到每个字符的 Hu 不变矩,进而跟模板字符相匹配,得到识别结果及文件保存关闭系统。整体功能模块如图 1.1 所示。
在这里插入图片描述
验证码识别过程:主要有信息获取、预处理、定位、分割、识别等个部分。验证码获取:选择需要识别的验证码,通过采样量化等方式获取图片信息。预处理:预处理的目的是去除噪声,加强有用的信息,并对输入图片进行有需要修复,以得到良好的识别效果。特征提取:经过预处理后的有用信号,数据量较大,所以此时根据识别图中数字的要求,提取数字的关键信息并忽略其噪点。检测/分3割:在图像处理过程中,有时会需要对图像进行分割来提取有价值的用于后继处理的部分,为实现验证码更好的识别对图片进行了分割一或多幅图片中含有特定目标的部分。识别:验证得到的数据是否符合前提要求,识别过程最简单的方式是模板匹配,通过与文件中的单个数字图片进行比对得到识别数字,并返回在文本容器中,最终在 GUI 显示。运行结果显示截图如图 1.2 所示。
在这里插入图片描述


实验参考博客:https://blog.csdn.net/weixin_38719187/article/details/104201467
源码参考:https://download.csdn.net/download/weixin_38719187/12678958
她没做出来的,我都补上了。 我的代码在:https://download.csdn.net/download/qq_39207897/20669918?spm=1001.2014.3001.5503
可能会因为图片大小,颜色而识别不好,因为图片的大小写死了,如果代码跟你的图片不匹配,你可以尝试改变图片的大小。有其他问题欢迎留言。



2 算法原理与实现流程


2.1 算法原理

为了将验证码中的数字从图像中识别出来,本文采用了 RGB 颜色分量的方法去噪,用连通域法进行了字符分割,Hu 不变矩提取字符,计算区域图像的 Hu 不变矩及改进的相对矩。下面将分别介绍各种算法的原理。


2.1.1 去噪

噪声在图像中的表现形式通常为一些引起较强视觉效果的孤立像素点或像素块,这些无用的信息会降低图像的可观测性,在图像识别中也会降低图像的可检测性。验证码中图像噪声的来源通常有两种,一种是来自图像获取的过程,也就是在图像采集过程中,受环境或者电子器材硬件影响而产生的噪声;一种是来自图像传输的过程。而验证码中的噪声是主动添加的。常见的图像噪声有四种,分别是高斯噪声、椒盐噪声、乘性噪声和泊松噪声。


2.1.2 定位

首先对文件进行裁剪、灰度与滤波处理,在此基础上使用 Canny 算法进行多轮边缘查找,再将其查找结果(阈化图像)进行像素邻域计算以得到分布在图像内大大小小多个像素连通区域,然后将这些以矩形标识的分散区域根据识别对象字符横向等距分布的特性进行多次区域兼并运算,之后将多轮处理后得到的多个兼并对象作整体布局上的比较分析,从而淘汰不良结果。最后根据最优兼并结果内字符单元区域集合提取图像内待识别数字。


2.1.3 分割算法

分割算法是图像处理和分析中必不可少的部分,具有重要的实际意义。它是根据图像处理和分析的需要把图像分成各具特性的区域并提取出感兴趣的目标的技术和过程。从算法的角度来看,可分为:①阈值分割;②像素分割;③深度分割;④彩色分割;⑤基于模糊集法;⑥基于区域生长法。大量实践证明,虽然目前图像分割的算法很多,但在实际使用中,每一种算法都有其局限性,针对不同类型的图像和不同的图像特征应采用不同的分割策略。由于是提取目标的形状特征,且采用的图片是真彩色单一目标的图片。
基于图像颜色连通区域的方法。该方法提取的图像特征结合了图像的颜色构成与分布信息。整个方法分为两部分:(1)基于多个颜色分量共生矩阵信息的图像纹理特征提取:(2)基于上述纹理特征的相似性度量函数。其中,图像颜色连通区域集的确定,是方法的基础和关键。下面,先对颜色连通区域的概念进行单介绍.
获取图像中颜色的空间分布特性的理想方法是将图像分割成为若干子区域,使得每一子区域具有明显的颜色特征,然后存储每–区域的位置和颜色特征以支持图像检索。如果能同时结合每个图像子区域的共生矩阵或共生基元等纹理特征,无疑将大大提高图像检索的精确性。但是,目前而言,还没有一种普遍适用
的、可靠的图像区域分割手段。颜色连通域,就是图像中满足同一颜色连通的图像子块构成的图像子块集合,称为颜色连通区域。根据颜色连通和颜色连通区域的定义,整个图像可以定义为如下的颜色连通区域集:


2.1.4 Hu 不变矩

采用 Hu 不变矩特征值向量进行距离度量,矩在图像识别和分析中应用较广,有 Hu 矩、Zemike 矩、复数矩等。MKHu's 利用二阶和三阶中心矩构造了七个不变矩,利用这七个不变矩可以描述一幅图像的区域形状,且具有旋转、平移和尺度不变性。但因其计算较为复杂,故研究人员提出了很多快速算法 Hu 矩是经典的矩描述方法,其相应公式如下。设数字图像 f(x,y),则其(p+q)阶定义为(p+q 阶中心矩为)其中


2.2 程序实现流程

代码截图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3 程序运行界面及结果分析


3.1 图形用户界面(GUI)(如图 3.1 所示)

在这里插入图片描述


3.1.1 选择验证码图片存放位置、加载图片(如图 3.2 所示)

预先把需要识别的验证码放在 test 文件夹中,点击打开按钮后,就会弹
出 test 文件,在文件中选择数字这一张进行后续操作。
在这里插入图片描述
更多报告细节,参考:
代码:https://download.csdn.net/download/qq_39207897/20669918
报告https://download.csdn.net/download/qq_39207897/20670003


推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
  • 图像分类:KNN算法(K—最近邻算法) 一.定义 定义:KNN是通过测量不同特征值之间的距离进行分类。它的的思路是ÿ ... [详细]
  • MATLAB人体行为检测与识别
    人体行为检测与识别摘要人体行为检测与识别是当前研究的重点,具有很高的研究价值和广阔的应用前景。主要应用在型人机交互、运动分析、智能监控和虚拟现实也称灵境技术ÿ ... [详细]
  • 每日一书丨AI圣经《深度学习》作者斩获2018年图灵奖
    2019年3月27日——ACM宣布,深度学习之父YoshuaBengio,YannLeCun,以及GeoffreyHinton获得了2018年的图灵奖, ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文介绍了如何通过Sybase Central连接到示例数据库,并查看其中的表和其他对象。主要内容包括启动Sybase Central、建立连接、查看表列表及表的具体信息。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
author-avatar
卸妆乳123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有