MATLAB人民币面额识别
自动缴费机、存取款一体机和自动售货机出现在了我们的生活中。这些先进的设备中最重要的一门技术就是:纸币识别技术。当我们将钞票投入缴费机或者存款机时,机器必定会首先识别用户投入的是面额为多少的纸币,之后再进行真伪辨别、数据写入等功能。目前已经有很多的识别技术诸如图像匹配法识别,神经网络识别、尺寸识别、纸币内部荧光物质识别等等。本小组使用 matlab 软件,
利用软件对图像处理的能力,在保证识别准确率的前提下对 100 元、
50 元和 20 元的人民币进行了识别。
- 纸币识别流程图
![](/assets/blank.gif)
![](/assets/blank.gif)
流程各部分详细说明
、读入待检测图片
读入一张 100 元人民币图片。
- 、图像边缘检测提取
边缘检测共有两种方法,一种是使用 edge 函数进行边缘检测;另一种是二值化
+ 图像填充 + 提取边缘的方法。
![](/assets/blank.gif)
使用 edge 函数进行边缘检测,选择 Sobel 算子。如图, sobel 算子边缘检测后的图像
![](/assets/blank.gif)
但是由于内部白色纹路较多, 为了不影响边缘截取,故选择第二种方法:二值化 + 图像填充
+ 提取边缘。
首先对图像进行二值化处理, 然 后 使 用 imfill 函 数 , 调用“ hole” 格式,对图像中的空 洞 进 行 填 充 。 然 后 调 用bwperim 函数, 对二值图像进行边缘检测。右图是检测的过程和结果。
- 、边缘剪切
得到了二值化的边缘图像后,需要对边缘进行剪切,以切掉背景图案, 只留下钞票图案,便于按比例分割图片。
我们采用 mode 函数,对边缘位置确定。首先,将二值图读入矩阵,生成m 行n 列的矩阵。然后一行一行进行检测,遇到白色的区域(值为1 )时,就将白色区域所处的列位置记入数组。当检测完毕后,使用
mode 函数对数组进行检测,数组中数字出现的最多的即是边缘的位置。
![](/assets/blank.gif)
提取中央数字部分
![](/assets/blank.gif)
FFv2=jianqie(0.275*m:0.50*m,0.254*n:0.5* n)
- 、中央部分识别
1. 区分百元和 50 、 20 元; 2. 区分 50 元和 20 元
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
•如图所示5 和2 的细节图。取5 和2 的靠左的一小部分进行
比较(红框圈的),数字5 后两根蓝线之间的距离小于上
面两根蓝线的距离,而2 恰恰相反。于是可以得出结果。
程序运行结果
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
遇到的问题:
关于背景复杂度的问题
( 1 )过于复杂的背景无法正常识别
因为背景如果过于复杂,二值化后会导致很多复杂的背景变成连续的线条。当这些线条比较 长的时候,边缘检测程序就会将这段线条识别为 边缘,因为众数计算的时候这个位置同样满足。 所以系统会认为此处就是边缘,但事实上只是背 景中的一些二值化的线条。故而导致剪切边缘无 法正确实现,进而影响到后面的中央分割和识别。
( 2 )浅色背景无法正常识别
![](/assets/blank.gif)
本程序的边缘检测方法是图像二值化后利用背景和纸币之间的黑白差异来寻找纸币的边缘。当人民币的背景为浅色时, 二值化的时候会将浅色自动二值化为白色.
MATLAB人民币面额识别相关推荐
- Keras进行人民币面额识别(二)
TinyMind人民币面值&冠字号编码识别挑战赛 数据准备 环境的准备 完整代码 代码解析 输出结果 本篇是进行神经网络的训练 数据准备 上一篇文章进行了数据的分类,获得的数据如下: 环境的准 ...
- Keras进行人民币面额识别(三)
TinyMind人民币面值&冠字号编码识别挑战赛 比赛链接 输入信息 需要输出的信息 代码源码 代码解释 输出结果转化为相应面值 打印进度 输出结果 本篇是对测试集进行测试和相应结果的输出 比 ...
- matlab人民币识别,MATLAB-OCR 用MATLAB实现人民币纸币金额的识别与统计 - 下载 - 搜珍网...
用MATLAB实现人民币纸币金额的识别与统计/说明.txt 用MATLAB实现人民币纸币金额的识别与统计/钞票面额识别与统计/matlab程序及图片/1-1.jpg 用MATLAB实现人民币纸币金额的 ...
- matlab人民币识别,Matlab图像处理学习笔记(六):基于sift特征点的人民币识别...
本文记录如何利用sift特征点进行人民币的识别.本文给出的matlab源码识别了1元与100元人民币的面额,相同思路,可以对各种币值的人民币进行面额.正反面的识别.但由于本程序采用串行,模板数的增多会 ...
- 基于MATLAB的人民币面额的自动识别
一.课题介绍 本文通过分析第五版人民币自身特征,分别利用主色调提取.长宽比提取.中值滤波特征图像提取.特征数字提取等四种方法,通过 matlab 软件来实现对第五套人民币 100 元.50 元.和 2 ...
- 【人民币识别】人民币序列号识别【含GUI Matlab源码 908期】
⛄一.简介 本文描述的人民币序列号识别系统实现了从图像预处理到识别结果的过程, 而序列号识别是本文的重要内容.以序列号区域为研究对象, 主要包括图像预处理.图像分割以及序列号识别等过程. 1 图像预处 ...
- 基matlab的水果识别的应用,基于MATLAB的水果识别的数字图像处理
基于MATLAB的水果识别的数字图像处理 图像处理 ( 报告 ) 题目 基于 MATLAB 的 水果识别的数字图像处理 指导教师 职称 教授 学生姓名 学号 专 业 院(系) 完成时间 2016 年 ...
- 基于matlab的人脸五官边缘检测方法,基于MATLAB的人脸识别系统的设计
基于MATLAB的人脸识别系统的设计(论文12000字,外文翻译,参考程序) 摘要:本文基于MATLAB平台设计了一款简单的人脸识别系统,通过USB摄像头来采集图像,经过肤色方法进行人脸检测与定位,然 ...
- 数字图像处理:基于MATLAB的车牌识别项目
学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧.前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码.今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码.这里没有使用 ...
最新文章
- 管理表空间和数据文件——使用OMF方式管理表空间
- 在Windows7 (SP1)配置IIS7.5 + .Net Framework 4.0.30319
- C++中多态与虚函数的学习例子
- 4g通信模块怎么连接sim卡_你好eSIM,再见SIM卡
- Swift - final关键字的介绍,以及使用场景
- PAT (Basic Level) Practice (中文)1007 素数对猜想 (20 分)
- django按钮点击后想刷新当前页面的view写法
- java如何关闭一个线程_如何关闭一个java线程池
- javaweb课堂练习继承与重写怎么做_深入学习Java Web(一):深入了解Servlet
- XP下如何引导Vista
- C语言-----职工信息管理系统
- 人工智能导论(专家系统)
- 将图像转换为1位位图 (1像素对应1bit)
- ItextPdf给PDF批量插入图片
- three.js-EffectComposer辉光使用展示
- word技巧-大纲与目录
- 使用python创造照片马赛克
- 怪诞行为学中的一些例子
- C#,图像二值化(18)——全局阈值的模糊集理论算法(Huang Thresholding)与源程序
- Android 增量更新实战
热门文章
- Charles 抓包工具 报You may need to configure your browser or application to trust the Ch......错误
- 可口可乐公司推出全球第一款可加热饮用汽水,“可口可乐生姜+”上市
- 【答辩问题】计算机专业本科毕业设计答辩的问题及回答
- Android 自动亮度
- 企业管理推脱责任要不得.
- 十大优秀企业管理网站
- 安利给CIO的零信任安全指南
- 计算机对模具的影响,不容忽视 浅谈笔记本模具重要性
- 连接大智慧数据库接口
- 剖析腾讯知文,智能问答机器人路在何方