资源简介
用Matlab实现的0-9个阿拉伯数字识别,代码全并且有注释,BP神经网入门的好例子~
代码片段和文件信息
% 数字识别
% 生成输入向量和目标向量
clear all;
‘LOADING......‘
for kk = 0:99
p1=ones(1616); %建立全为1的样本矩阵
m=strcat(‘nums\‘int2str(kk)‘.bmp‘);
x=imread(m‘bmp‘); %循环读入0-99个样本数字文件
bw=im2bw(x0.5); %对输入图像进行二值化处理 采用全局阈值0.5
[ij]=find(bw==0);
imin=min(i);
imax=max(i);
jmin=min(j);
jmax=max(j);
bw1=bw(imin:imaxjmin:jmax); %截取是入图像中的数字部分
rate=16/max(size(bw1));
bw1=imresize(bw1rate); %对输入文件变尺寸处理
[ij]=size(bw1);
i1=round((16-i)/2);
j1=round((16-j)/2);
p1(i1+1:i1+ij1+1:j1+j)=bw1; %建立起16*16的矩阵
p1=-1.*p1+ones(1616); %反色处理
for m=0:15
p(m*16+1:(m+1)*16kk+1)=p1(1:16m+1);
end %将处理的源样本输入供神经网络训练的样本 pcolum是样本数循环变量
switch kk
case{0102030405060708090}
t(kk+1)=0; %数字0
case{1112131415161718191}
t(kk+1)=1; %数字1
case{2122232425262728292}
t(kk+1)=2; %数字2
case{3132333435363738393}
t(kk+1)=3; %数字3
case{4142434445464748494}
t(kk+1)=4; %数字4
case{5152535455565758595}
t(kk+1)=5; %数字5
case{6162636465666768696}
t(kk+1)=6; %数字6
case{7172737475767778797}
t(kk+1)=7; %数字7
case{8182838485868788898}
t(kk+1)=8; %数字8
case{9192939495969798999}
t(kk+1)=9; %数字9
end
end %建立与训练样本对应的输出值t
‘LOAD OK.‘
save E52PT p t;
% 创建和训练BP网络
clear all;
load E52PT p t; %加载样本
pr(1:2561)=0;
pr(1:2562)=1;
%创建BP网络
net=newff(pr[25 1]{‘logsig‘ ‘purelin‘} ‘traingdx‘ ‘learngdm‘);
net.trainParam.epochs=2500; %设置训练步数
net.trainParam.goal=0.001; %设置训练目标
net.trainParam.show=10; %设置训练显示格数
net.trainParam.lr=0.05; %设置训练学习率
net=train(netpt); %训练BP网络
‘TRAIN OK.‘
save E52net net;
% 识别
for times=0:999
clear all;
p(1:2561)=1;
p1=ones(1616);
load E52net net;
test=input(‘FileName:‘ ‘s‘);
x=imread(test‘bmp‘);
bw=im2bw(x0.5);
[ij]=find(bw==0);
imin=min(i);
imax=max(i);
jmin=min(j);
jmax=max(j);
bw1=bw(imin:imaxjmin:jmax);
rate=16/max(size(bw1));
bw1=imresize(bw1rate);
[ij]=size(bw1);
i1=round((16-i)/2);
j1=round((16-j)/2);
p1(i1+1:i1+ij1+1:j1+j)=bw1;
p1=-1.*p1+ones(1616);
for m=0:15
p(m*16+1:(m+1)*161)=p1(1:16m+1);
end
[aPfAf]=sim(netp); %测试网络
imshow(p1);
a=round(a) %输出网络识别结果
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 112853 2009-05-19 21:51 numberRecognition\E52net.mat
文件 2033 2009-05-19 21:51 numberRecognition\E52PT.mat
文件 2852 2009-05-19 21:52 numberRecognition\numberRecognition.m
文件 3126 2005-11-13 20:43 numberRecognition\nums\0.bmp
文件 3126 2005-11-13 20:43 numberRecognition\nums\1.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\10.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\11.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\12.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\13.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\14.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\15.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\16.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\17.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\18.bmp
文件 3126 2005-11-13 20:50 numberRecognition\nums\19.bmp
文件 3126 2005-11-13 20:43 numberRecognition\nums\2.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\20.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\21.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\22.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\23.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\24.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\25.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\26.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\27.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\28.bmp
文件 3126 2005-11-13 20:51 numberRecognition\nums\29.bmp
文件 3126 2005-11-13 20:43 numberRecognition\nums\3.bmp
文件 3126 2005-11-13 20:55 numberRecognition\nums\30.bmp
文件 3126 2005-11-13 20:55 numberRecognition\nums\31.bmp
文件 3126 2005-11-13 20:55 numberRecognition\nums\32.bmp
............此处省略79个文件信息
- 上一篇:最小二乘滤波算法正弦波
- 下一篇:求取图像的相关系数---matlab ---M文件
相关资源
- 求取图像的相关系数---matlab ---M文件
- EOF分析matlab代码
- 尾灯识别matlab代码
- MATLAB提取颜色直方图特征
-
Simuli
nk TI C2000 DSP 硬件支持包离线安 - 条纹投影轮廓术中的快速光栅预校准
- HHT变换的三种方法+Matlab程序
- 背景差分法的MATLAB代码
- matlab常用代码大全科研神器
- MATLAB GUI设计学习手记第3版源代码BY罗
- MATLAB GUI设计学习手记 第3版 源代码
- Split bregman 算法MATLAB源代码
- 台湾大学MATLAB课程郭彦甫全英文PPT课
- 注水法功率分配问题.m
- HHT变换的三种方法 Matlab
- 语音共振峰检测的MATLAB程序
- matlab实现仿射加密解密
- matlab 图像傅里叶变换 (源代码)
- Matlab实现的阿拉伯数字识别程序代码
- 用matlab实现RSA数字签名
- matlab实现RSA公钥密码体制
- MATLAB大脑腔体图像分割
- 内弹道计算程序
- 区域合并msrm算法
- 四元数MATLAB工具箱
- MATLAB 对iris数据集进行PCA
- matlab空间计量软件包
- matlab数字水印dwtGUI+psnr+mse
- MATLAB车辆的线性跟驰模型 刺激反应
- 代理模型MATLAB工具箱FAC Viana
评论
共有 条评论