基于MATLAB的人民币识别系统
编程环境:Matlab 2021b
1、选图背景
随着科技的发展,图像识别技术在计算机视觉领域起着越来越重要的作用,现已被应用到金融、军事、公安刑侦、生物医学、机器视觉等各个领域;
随着国民经济的快速发展,人民币大量流通市场,商业交易都离不开人民币;
开发出一种高效率、低成本、通用性强的人民币识别系统,能够减少大量的人力资源,提升资金的周转速度,十分具有前景。
2、研究内容及方法
2.1 研究内容
结合图像处理方面的知识对人民币进行研究分析。
对纸币图像进行预处理工作,改善图像质量,提高识别准确率。
以第五版人民币作为研究目标,分析特征区域,完成对纸币面值的识别。
使用MATLAB实现
2.2 研究方法
2.2.1预处理
对图像进行灰度化、边缘检测、旋转变换(Radon变换)等操作
灰度处理:将彩色图像转化为灰度级相等的图像,灰度变换是为了简化信息,在用灰度图像进行后续分析能够减少大量计算量。
边缘检测:边缘检测是为了找到图像中像素变化明显的点的集合,定位图像特征区域,图像特征区域定位指的是在初始图像中确定出纸币图像所在的位置。
旋转变换(倾斜校正):由于纸币摆放、拍摄角度问题会使纸币图像一定程度的倾斜或几何变形,需要进行倾斜校正。采用雷登变换。
腐蚀:主要是为了缩减图像中的白色区域,用imerode函数实现图像腐蚀。
闭运算:能消除小的空洞,填充凹角并填补轮廓线中的断裂,使轮廓线更光滑。用imclose函数实现闭运算。
二值化:二值图像(黑白图像)指的是图像中每个像素点只有黑、白两个值或者说灰度等级只有两种的图像,二值图的灰度范围是0或者255,二维矩阵由0、1组成,“0”表示黑色(灰度值等于0),“1” 表示白色(灰度值等于255),数据类型为1位二进制位。二值图像具有占用空间小、信息掩藏性强的特点。
纸币定位—边缘切割:图像的定位分割是为了获得完整、单独的目标图像,它是图像处理中非常关键的一步,图像分割主要有基于区域和基于边界分割两种方法,本系统采用区域定位分割法。
在纸币识别系统中其目的是基于纸币区域和背景区域的色调的不同,定位纸币图像的四条边缘线,确定纸币在整幅图像中的具体位置,通过剪切把纸币和背景分离。定位的准确性将直接影响到后面的特征提取和识别。
2.2.2 纸币面值识别
中央数字提
中央数字提取流程
模板匹配识别
该方法是基于中央位置(即数字部分)来进行区分。通过上一步骤把纸币单独剪切出来后,根据不同币值人民币长宽比例不同,使用 imcrop 函数把中央带有特征数字的区域剪切出来。接下来,调用rgb2gray函数把提取的部分转换成灰度图像,使用 medfilt2 函数进行中值滤波除去噪声并进行明暗反转。se=strel('rectangle',[a,b]),使用strel函数创建一个a*b的矩形结构元素,调用imdilate函数和imerode函数对结构元素se进行闭运算(先膨胀后腐蚀)。
长度对比识别
对降噪后的图片进行二值化处理,得到黑白图像并进行显示。找出数字区域左右边界的第一个黑点,计算出两个黑点之间的水平距离,即为中央数字的宽度,计算出数字宽度与整张纸币长度的比值。[8]
参考表1所示第五版纸币基本特征,根据数字宽度:中央数字宽度最大的图片即为100元,依次类推宽度最小的为1元;根据数字长度和整张纸币长度的币值:币值最大的为100元,依次类推比值最小的为1元。
币值种类 100元 50元 20元 10元 5元 1元 主色调 红 绿 棕 蓝绿 紫 橄榄绿 规格 长156mm 宽76mm 长150mm 宽70mm 长145mm 宽70mm 长140mm 宽70mm 长135mm 宽63mm 长135mm 宽62mm 中央数字长度 38mm 25mm 24mm 22mm 12mm 7mm 中央数字长度/纸币长度 0.243 0.167 0.166 0.157 0.089 0.052 R、G、B对比识别
RGB色彩就是物理学里光的三原色,人类视觉可以感知的所有颜色都可以通过R、G、B(不同亮度度)互相混合得到。同样,任何一种颜色都可以被分解成R、G、B(不同亮度)三种颜色。[9]
提取出数字区域RGB分量,调用mean函数,使用
公式返回每个R、G、B分量的平均值,结合不同纸币特征区域R、G、B的不同,通过分量之间作差,判断纸币面纸大小
2.2.3 GUI 界面制作
GUI(图形用户界面)是有各种图形对象(如窗口、按钮、文本和菜单)组成显示的计算机操作用户界面。用户通过运算或控制代码激活图形对象,引起一系列程序代码的执行,结果通过用户界面进行反馈。MATLAB GUI是MATLAB中的一个极具实用性、交互性、美观性的功能,将流程化的MATLAB程序包装进一个简单易懂的图形中去,把繁琐的过程简洁化,从而方便了用户的使用过程,让程序的执行变得更加直观。同时,GUI中信息、数据的传输效率非常高,结果运行与反馈便捷、准确,开发人员不需要在接口代码的设计上花费太多精力,为使用MATLAB的程序设计者提供了一个简单的开发环境,为使用者带来了良好的体验,提高了开发者的工作效率。
本系统设计的平台如下图所示,主界面上显示了待识别图像、旋转校正后的图像、截取面额图像、处理后图像,设置“读取钞票”功能按钮,点击按钮读入待识别纸币图像即可实现对应的功能。
3、结果展示
4、源码获取方式
演示视频:基于matlab GUI纸币面值识别_哔哩哔哩_bilibili
基于MATLAB的人民币识别系统相关推荐
- 基于matlab的人脸五官边缘检测方法,基于MATLAB的人脸识别系统的设计
基于MATLAB的人脸识别系统的设计(论文12000字,外文翻译,参考程序) 摘要:本文基于MATLAB平台设计了一款简单的人脸识别系统,通过USB摄像头来采集图像,经过肤色方法进行人脸检测与定位,然 ...
- matlab 函数return_基于MATLAB的指纹识别系统【论文,GUI】
一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...
- 基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc
基于matlab的车牌识别系统的设计(附程序).doc 1车牌识别系统的设计1.摘要:汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位.字符分割和字符识别三个主要部分.本文首先确定车辆 ...
- matlab 二值化_基于MATLAB的指纹识别系统[GUI界面+万字技术文档+语音播报]
一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...
- matlab speex的语音处理模块_基于MATLAB的条形码识别系统[GUI,可识别几十个图片]...
1.1 应用MATLAB识别条形码总体设计 本设计为基于MATLAB的条形码识别系统,带有一个GUI界面. GUI设计界面 1.1.1 程序总体设计思路 在上节中我们简单的介绍了MATLAB的发展以及 ...
- 基于MATLAB的人脸识别系统
基于MATLAB的人脸识别系统 一.课题背景 自70年代以来.随着人工智能技术的兴起.以及人类视觉研究的进展.人们逐渐对人脸图像的机器识别投入很大的热情,并形成了一个人脸图像识别研究领域,.这一领域除 ...
- 基于Matlab的车牌识别系统完整版课论文分享 快看
基于Matlab的车牌识别系统 一.设计原理 车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索.检测.定位,并分割出包 ...
- 基于MATLAB的条形码识别系统
1.1 应用MATLAB识别条形码总体设计 本设计为基于MATLAB的条形码识别系统,带有一个GUI界面. 资源链接 https://gitee.com/chending006/tiaoxingmah ...
- 人脸识别系统 matlab,基于MATLAB的人脸识别系统的设计
基于MATLAB的人脸识别系统的设计(论文12000字,外文翻译,参考程序) 摘要:本文基于MATLAB平台设计了一款简单的人脸识别系统,通过USB摄像头来采集图像,经过肤色方法进行人脸检测与定位,然 ...
最新文章
- 什么叫做类数组对象?
- vuedraggable示例_vue拖拽列表vuedraggable
- 杭电find the night
- 20169207《Linux内核原理与分析》第五周作业
- 00001centos6.3安装
- BZOJ4377: [POI2015]Kurs szybkiego czytania
- 利用Session实现一次性验证码(多学一招)
- 基于上下文的访问控制与基于区域策略的防火墙
- linux切分文件指定行_vim技巧:在不同文件buffer间切换,在多窗口跳转和改变窗口大小...
- 微信小程序富文本三种方法+0.1rich-text+0.2插件+0.3webview
- Linux Centos 常用命令整理
- OPNET 学习系列(一)
- 2017杭州云栖大会 智能客服专场预热 — 用心服务客户,用云助力客服
- Matlab 指定分辨率保存图片
- 从零开始写JavaScript框架(一)
- Java面试宝典_君哥讲解笔记04_java基础面试题——String s=new String(“xyz“);创建了几个String Object、equals和hashCode、hashCode(
- 排序算法为什么要求稳定性
- 大白话给你讲明白数据仓库
- 500G的硬盘实际可用空间是多少?
- Charles——charles 主界面的介绍