资源简介
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个文件信息
相关资源
- BP神经网络解决手写数字识别问题 m
- 基于颜色的聚类分割matlab
- BP神经网络实现手写数字识别matlab实现
- matlab模式识别工具箱PRTOOLS及使用说明
- MINIST 手写数字识别 MATLAB仿真
- 用身高和/或体重数据进行性别分类的
- 模式识别与智能计算-Matlab技术实现(
- 模式识别与智能计算matlab实现 安装
- 西交大模式识别编程大作业报告+MAT
- 车牌识别_matlab_模式识别(MATLAB代码,
- 模式识别课程作业 基于svm的人脸识别
- 图形模式识别 matlab 圆 正方形
- 《模式识别与智能计算》MATLAB技术实
- matlab利用不变矩提取图片的形状特征
- 模式识别4个实验(matlab)
- 基于BP神经网络的手写数字识别matla
- 模式识别课程作业 matlab与libsvm环境
- 神经网络的手写数字识别USPS数据集
- 车牌识别Matlab代码
- 基于matlab的车牌识别内含matlab代码以
- matlab实现手写数字识别
- Matlab手写数字识别
- 指纹识别数字图像处理+模式识别+机器
- 路标识别与提取采用聚类方法C-means
- FAST角点检测算法MATLAB程序
- 基于PCA和SVM的人脸识别 matlab程序
- matlab手动实现BP网络,不调用工具箱(
- matlab svm MNIST 手写数字识别
- 手写数字识别Matlab代码
- 模式识别与智能计算-Matlab技术实现
评论
共有 条评论