资源简介
MATLAB源码实现手写数字识别,模式识别经典分类算法,识别率有待提高,思路清晰,适合新手入门学习使用
代码片段和文件信息
%此文件是Bayes最小误差法的实现函数,主文件直接对其进行调用,无参数,返回值是识别结果。
function [number]=Bayes_minerror()
X=[];
A=[];
number=0;
currPath = fileparts(mfilename(‘fullpath‘));
manu_picture=strcat(currPath‘\‘‘manu.bmp‘);
manu_picture=pre_figure(manu_picture);
for m=1:10
Y=[];
folder_name=sprintf(‘%d‘m-1);
my_str1=strcat(currPath‘\手写数字\‘folder_name); %这几句主要进行模板数字的路径处理
for n=1:10
Z=[];
filefolder_name=sprintf(‘%d‘n);
file_name=strcat(folder_name‘-‘filefolder_name);
model_picture=strcat(my_str1‘\‘file_name‘.bmp‘);
A=pre_figure(model_picture); %调用预处理函数,获得特征
for z=1:5 %将5*5的特征矩阵转换成1*25的矩阵
Z=[ZA(z:)]; %矩阵重组
end
Y(n:)=Z; %矩阵重组
end
X(::m)=Y; %X是3维矩阵,第一维分别代表每个样本文件夹里的10个数字。
end %第二维是每个样本的25个特征,第三维分别代表10个文件夹。
mymanu_picture=[];
for z=1:5
mymanu_picture=[mymanu_picturemanu_picture(z:)]; %把待识别的手写图片5*5转换成1*25
end
%%%%%%%% 下面是Bayes最小误差法,基本原理见图像模式识别—VC++技术实现.pdf %%%%%%%%%%
hx=zeros(110);
for n=1:10
Xmeans=zeros(125);
%求样本平均值
for k=1:10
for i=1:25
Xmeans(i)=Xmeans(i)+X(kin);
end
end
for i=1:25
Xmeans(i)=Xmeans(i)/10;
end
%求协方差矩阵
mode=zeros(1025);
for i=1:10
for j=1:25
mode(ij)=X(ijn);
end
end
for i=1:25
for j=1:25
s=0.0;
for k=1:10
s=s+(mode(ki)-Xmeans(i))*(mode(kj)-Xmeans(j));
end
s=s/9+0.0000000001*rand(); %这里加了个随机数,因为会有很多项s为0,导致S中出现全0列,使下面对S求逆进行不了
%s=s/9;
S(ij)=s;
end
end
%求先验概率
Pw=0.1; %总样本数为100,每类样本数都是10,故此为0.1
invS=inv(S); %求S的逆矩阵
detS=det(S); %求S的行列式
% 求判别函数
Xx=mymanu_picture;
for i=1:25
Xx(i)=Xx(i)-Xmeans(i);
end
t1=Xx*invS*Xx‘;
t2=log(Pw);
t3=log(detS+1);
hx(n)=-t1/2+t2-t3/2;
end
%求判别函数的最大值
maxval=hx(1);
for i=1:10
if(hx(i)>maxval)
maxval=hx(i);
number=i-1;
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2750 2012-04-20 15:19 手写数字识别\Bayes_MinError.m
文件 4118 2012-04-20 15:19 手写数字识别\handwritten_numbers.m
文件 540 2012-04-20 15:19 手写数字识别\myoutput.m
文件 2067 2012-04-20 15:38 手写数字识别\pre_figure.m
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-1.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-10.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-2.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-3.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-4.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-5.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-6.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-7.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-8.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\0\0-9.bmp
..A..H. 36352 2012-04-19 14:54 手写数字识别\手写数字\0\Thumbs.db
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-1.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-10.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-2.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-3.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-4.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-5.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-6.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-7.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-8.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\1\1-9.bmp
文件 1810 2012-04-19 14:54 手写数字识别\手写数字\1\quanzhi.txt
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\2\2-1.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\2\2-10.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\2\2-2.bmp
文件 58678 2012-04-19 14:54 手写数字识别\手写数字\2\2-3.bmp
............此处省略218个文件信息
相关资源
- RBF神经网络用于函数拟合与模式识别
- 基于matlab的简单手写数字识别
- matlab 0~9GUI手写模式识别,正确率挺高
- 模式识别鸢尾花分类
- 模式识别大作业K均值算法matlab平台实
- Matlab实现ISODATA算法对iris数据分类
- 模式识别与智能计算的matlab实现源代
- 模式识别pca的设计
- 模式识别与智能计算杨淑莹MATLAB版源
- K近邻算法的MATLAB实现
- 基于聚类的路标检测K-meansMATLAB(RGB)
- 动物图像多分类识别MATLAB可运行
- 基于matlab的手写数字识别系统
- 模式识别身高体重贝叶斯算法
- 贝叶斯高斯分类作业
- 模式识别大作业MATLAB版)
- 基于神经网络的手写数字识别MATLAB源
- MATLAB应用BP神经网络对英文字母的识别
- matlab模式识别感知器实现线性可分、
- ISOMAP 源码matlab编写
- ISODATA的matlab代码
- 水果智能分类系统模式识别
- 模式识别或数字识别
- 光学字符识别系统matlab版
- 支持向量机用于肌电信号模式识别的
- matlab实现字母识别
- 超全的模式识别Matlab源程序,涉及几
- 神经网络用于模式识别及MATLAB源代码
- 模式识别第四版matlab代码
- matlab实现模式识别的聚类分类算法
评论
共有 条评论