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代码相关推荐

  1. 使用MATLAB实现基于BP神经网络训练的手写字母识别程序

    前言 大三的时候利用MATLAB搭建了一个基于BP神经网络框架的手写字母识别程序,其中使用了EMNIST数据集进行训练和测试,可实时对手写输入样本进行识别,并返回两个最可能的结果,过程中可继续添加样本 ...

  2. 人工水母优化BP神经网络(JSBP)实现数据预测的Matlab代码和效果展示

    人工水母搜索算法优化BP神经网络(JSBP)实现数据预测原理讲解和代码效果展示的完整讲解视频(时长33分钟)地址:https://www.bilibili.com/video/BV1z84y1c7JA ...

  3. 【图像识别】基于 BP神经网络路面裂缝识别系统Matlab代码

    1 简介 随着我国经济建设的快速发展,道路交通在国民经济建设中扮演的角色越来越重要.随之而来的道路路面的养护和管理问题愈发凸显,其中道路路面的破损检测就成为相关道路养护部门的工作重点之一.另外,随着我 ...

  4. 基于BP神经网络手写数字和字母识别

    一:系统介绍 这个程序是在MATLAB中编写,基于BP神经网络的文字符号识别系统的具体实现,该系统既可以实现单一手写字符,也可以实现一连串的字符,而且具有较高的准确率.本系统主要有几个模块,图片输入, ...

  5. 基于cnn的人脸识别_基于卷积神经网络(CNN)的人脸在线识别系统

    微信搜索"AI大道理",选择"置顶"公众号 重磅干货,深入讲解AI大道理 ------ 本设计研究人脸识别技术,基于卷积神经网络构建了一套人脸在线检测识别系统, ...

  6. 基于模板匹配的手写字体数字识别-含Matlab代码

    目录 一.引言 二.系统知识的表示与组织 2.1 规则前提条件的描述 2.2 规则结论的表示 2.3 知识库的组织 三.手写字体数字识别算法流程 四.识别结果 五.参考文献 六.Matlab代码获取 ...

  7. 【图像识别】基于计算机视觉实现路面裂缝检测识别系统matlab代码

    1 简介 随着公路与铁路事业的飞速发展,各类车辆和里程的增加,铁路的一次次提速,都对路面产生了巨大的压力.不论是公路路面还是铁路路面,路面裂纹都能随处可见,由路面裂纹造成的交通事故时有发生.研究路面裂 ...

  8. 使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)

  9. 【图像融合】基于小波变换算法实现可见光与红外光图像融合系统matlab代码

    1 简介 由于红外成像仪器本身存在缺陷和环境的影响,造成图像成像效果不是很理想,噪声大,视觉效果不好,这些都会影响融合的效果.所以在图像融合之前先进行图像的去噪.增强等处理,改善红外图像的视觉效果.采 ...

最新文章

  1. JS 中的 Map,Set 和 iterable
  2. vim 删除操作命令
  3. python 读取txt
  4. java swt 菜鸟教程_编程基础学习JS的入门教程
  5. Android 软键盘的全面解析,让你不再怕控件被遮盖
  6. 通过投影增强数据模型
  7. 社区团购平台得推社区团购系统 v3.1源码
  8. 灰度与NFL纽约巨人队达成合作,成为NFL球队首个加密赞助商
  9. [Xamarin] 客製化的ListView之章 (转帖)
  10. 4种方案,帮你解决Maven创建项目过慢问题
  11. yacc 简易计算机规则,Lex Yacc 学习笔记(2)- 简单计算器
  12. reportlab 应用 打印考生成绩
  13. 递归算法经典实例python-Python实现经典递归算法
  14. Ae:Keylight(1.2)(中英对照)
  15. 如何设置eclipse眼睛保护色-码农必备
  16. 多线程支持断点续传的文件传输--(摘自大富翁)
  17. 解决TypeError: Unicode-objects must be encoded before hashing
  18. ios是什么,ios是什么意思
  19. Win11系统默认英文字体怎么修改成为中文
  20. SQL Sever 远程计算机拒绝网络连接,错误:1225 具体解决步骤。

热门文章

  1. 腾讯云11·11:千亿订单背后的安全“暗战”
  2. smplayer中文字幕乱码问题
  3. 看看一位清华计算机专业的学生怎么看LINUX与WINDOWS的!
  4. PMP英文报名时,如何描述自己的项目经验?
  5. 如何在计算机自动开机时选择用户,bios如何设置电脑定时自动开机/关机-bios设置电脑定时自动开机/关机的饭方法 - 河东软件园...
  6. 什么样的投影仪好,家用便携式投影仪怎么选?
  7. 悠易科技京东云联合解决方案发布会成功举办
  8. 教师计算机技能培训方案,教师信息技术培训实施方案.doc
  9. ESG评级:Ecovadis
  10. 纺织再生产品申请grs注意标准