【图像识别】基于BP神经网络和RGB颜色空间实现人民币识别系统matlab代码
1 简介
随着信息化时代的到来,智能识别成为研究的热点,本文以人民币识别为研究对象,运用 Matlab 软件系统中所提供的神经网络工具箱,结合图像处理技术,实现对各种不同面值纸质版人民币的识别。本文主要针对六种不同面值的纸币,即一元,五元,十元,二十元,五十元,一百元的人民币进行了识别,首先通过样本集构建,图像预处理,特征提取,矩阵转置,样本与样本标签建立一一对应关系,生成相应的训练和测试矩阵,进而通过BP 神经网络对数据矩阵进行分类训练,通过一定的训练次数后,该系统对人民币的识别率可达到 98.33%以上,具有较高的参考价值。纸币的流传已具有悠久的历史,对于纸币的识别方法也已存有很多不同的研究方法,从最初的人工识别到现在的基于信息化的识别方法,它们都存在着自身的优点和缺陷,人工识别过程中,准确率相对较高,但大量的重复操作易使人产生反感和厌恶情绪,同时容易使人产生疲劳感。随着信息化时代的到来,传统识别方法的缺陷就更多的暴露出了出来。运用科学的识别方法解决纸币的识别成为研究的热点。现阶段常用的纸币识别方法主要有尺寸比较法、模板匹配、人工神经网络等。在神经网络系统中,有 BP 网络、RBF 网络、SOM 网络、级联相关网络、Elman 网络、Boltzmann 机等,其中BP 神经网络是较常见的一种,它是一种以误差反向传播为基础的前向网络,具有非常强的非线性映射能力。
2 部分代码
function varargout = main(varargin) % MAIN MATLAB code for main.fig % MAIN, by itself, creates a new MAIN or raises the existing % singleton*. % % H = MAIN returns the handle to a new MAIN or the handle to % the existing singleton*. % % MAIN('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAIN.M with the given input arguments. % % MAIN('Property','Value',...) creates a new MAIN or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before main_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to main_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help main% Last Modified by GUIDE v2.5 29-May-2020 00:04:07% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @main_OpeningFcn, ...'gui_OutputFcn', @main_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []); if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1}); endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT% --- Executes just before main is made visible. function main_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to main (see VARARGIN)% Choose default command line output for main handles.output = hObject;% Update handles structure guidata(hObject, handles);% UIWAIT makes main wait for user response (see UIRESUME) % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = main_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure varargout{1} = handles.output;% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %% 图像读取 [filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...'*.*','All Files' }); l = imread([ pathname,filename]); axes(handles.axes1) imshow(l); title('原始图像') l1=rgb2gray(l); %将真彩色图像转换为灰度图像 bw1=edge(l1,'sobel', 'both'); %采用sobel算子进行边缘检测 handles.bw1=bw1; press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %% 分割后二值化 I=handles.I4; axes(handles.axes6) imshow(I); title('图像二值化') % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %% RGB识别 set(handles.text2,'String',['RGB识别结果面额=',num2str(handles.result)])% --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %% BP训练 TT=handles.TT; result1=BP_shibie(TT); handles.result1=result1;guidata(hObject, handles); % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) result1=handles.result1; set(handles.text2,'String',['BP识别结果面额=',num2str(handles.result1)])
3 仿真结果
4 参考文献
[1]程海玉, & 王辉. (2008). 基于bp神经网络的人民币纸币面额识别方法. 湖北成人教育学院学报, 014(002), 116-封3.
【图像识别】基于BP神经网络和RGB颜色空间实现人民币识别系统matlab代码相关推荐
- 使用MATLAB实现基于BP神经网络训练的手写字母识别程序
前言 大三的时候利用MATLAB搭建了一个基于BP神经网络框架的手写字母识别程序,其中使用了EMNIST数据集进行训练和测试,可实时对手写输入样本进行识别,并返回两个最可能的结果,过程中可继续添加样本 ...
- 人工水母优化BP神经网络(JSBP)实现数据预测的Matlab代码和效果展示
人工水母搜索算法优化BP神经网络(JSBP)实现数据预测原理讲解和代码效果展示的完整讲解视频(时长33分钟)地址:https://www.bilibili.com/video/BV1z84y1c7JA ...
- 【图像识别】基于 BP神经网络路面裂缝识别系统Matlab代码
1 简介 随着我国经济建设的快速发展,道路交通在国民经济建设中扮演的角色越来越重要.随之而来的道路路面的养护和管理问题愈发凸显,其中道路路面的破损检测就成为相关道路养护部门的工作重点之一.另外,随着我 ...
- 基于BP神经网络手写数字和字母识别
一:系统介绍 这个程序是在MATLAB中编写,基于BP神经网络的文字符号识别系统的具体实现,该系统既可以实现单一手写字符,也可以实现一连串的字符,而且具有较高的准确率.本系统主要有几个模块,图片输入, ...
- 基于cnn的人脸识别_基于卷积神经网络(CNN)的人脸在线识别系统
微信搜索"AI大道理",选择"置顶"公众号 重磅干货,深入讲解AI大道理 ------ 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统, ...
- 基于模板匹配的手写字体数字识别-含Matlab代码
目录 一.引言 二.系统知识的表示与组织 2.1 规则前提条件的描述 2.2 规则结论的表示 2.3 知识库的组织 三.手写字体数字识别算法流程 四.识别结果 五.参考文献 六.Matlab代码获取 ...
- 【图像识别】基于计算机视觉实现路面裂缝检测识别系统matlab代码
1 简介 随着公路与铁路事业的飞速发展,各类车辆和里程的增加,铁路的一次次提速,都对路面产生了巨大的压力.不论是公路路面还是铁路路面,路面裂纹都能随处可见,由路面裂纹造成的交通事故时有发生.研究路面裂 ...
- 使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)
- 【图像融合】基于小波变换算法实现可见光与红外光图像融合系统matlab代码
1 简介 由于红外成像仪器本身存在缺陷和环境的影响,造成图像成像效果不是很理想,噪声大,视觉效果不好,这些都会影响融合的效果.所以在图像融合之前先进行图像的去噪.增强等处理,改善红外图像的视觉效果.采 ...
最新文章
- JS 中的 Map,Set 和 iterable
- vim 删除操作命令
- python 读取txt
- java swt 菜鸟教程_编程基础学习JS的入门教程
- Android 软键盘的全面解析,让你不再怕控件被遮盖
- 通过投影增强数据模型
- 社区团购平台得推社区团购系统 v3.1源码
- 灰度与NFL纽约巨人队达成合作,成为NFL球队首个加密赞助商
- [Xamarin] 客製化的ListView之章 (转帖)
- 4种方案,帮你解决Maven创建项目过慢问题
- yacc 简易计算机规则,Lex Yacc 学习笔记(2)- 简单计算器
- reportlab 应用 打印考生成绩
- 递归算法经典实例python-Python实现经典递归算法
- Ae:Keylight(1.2)(中英对照)
- 如何设置eclipse眼睛保护色-码农必备
- 多线程支持断点续传的文件传输--(摘自大富翁)
- 解决TypeError: Unicode-objects must be encoded before hashing
- ios是什么,ios是什么意思
- Win11系统默认英文字体怎么修改成为中文
- SQL Sever 远程计算机拒绝网络连接,错误:1225 具体解决步骤。
热门文章
- 腾讯云11·11:千亿订单背后的安全“暗战”
- smplayer中文字幕乱码问题
- 看看一位清华计算机专业的学生怎么看LINUX与WINDOWS的!
- PMP英文报名时,如何描述自己的项目经验?
- 如何在计算机自动开机时选择用户,bios如何设置电脑定时自动开机/关机-bios设置电脑定时自动开机/关机的饭方法 - 河东软件园...
- 什么样的投影仪好,家用便携式投影仪怎么选?
- 悠易科技京东云联合解决方案发布会成功举办
- 教师计算机技能培训方案,教师信息技术培训实施方案.doc
- ESG评级:Ecovadis
- 纺织再生产品申请grs注意标准