资源简介
手写数字识别matlab实现,源代码附上。用到机器学习的方法
代码片段和文件信息
function testsample = Getfeature(im)
[rowcol] = find(im==0); %得到图片的上下左右的边界
im = im(min(row):max(row)min(col):max(col)); %找到图片中手写数字的位置
[rowcol] = size(im); %手写数字的行和列
w = fix(row/5); % fix是为了取整
h = fix(col/5);
count = 0;
k=1;
testsample = zeros(125);
for i=1:w:5*w %从第一行开始
for j=1:h:5*h %从第一列开始
for m=i:i+w-1
for n=j:j+h-1
if im(mn)==0
count=count+1;
end
end
end
testsample(k)=count/(w*h); %第k个特征分量
count=0;
k=k+1;
end
end
end
% struct pattern//pattern结构体,保存某个数字类别(0~9)的所有样品特征
% {
% int number; %该手写数字样品个数
% double feature[200][25]; %各样品特征,每类手写数字最多有200个样品,每个样品有25个特征
% };
%
% class GetFeature : public CDib
% {
% public:
% pattern pattern[10]; %手写数字样品特征库
% double testsample[25]; %待测的手写数字
% int width; %手写数字的宽
% int height; %手写数字的高
% int LineBytes;
%
% void Save(int cls); %将手写的数字保存到cls(0~9)类别中
% BOOL Saveable(int cls); %判断手写的数字能否保存到cls(0~9)类别中,因为各类别中样品特征不能重复
% double Cal(int row int col); %计算分割好的5×5小区域中,黑像素所占的比例
% void SetFeature(); %计算手写数字的特征,赋值给testsample
% void GetPosition(); %获得手写数字的位置
% GetFeature();
% virtual ~GetFeature();
%
% protected:
% int bottom; %手写数字的底部
% int top; %手写数字的顶部
% int left; %手写数字的左边
% int right; %手写数字的右边
% };
% ***************************************************************
% * 函数名称:GetPosition()
% * 函数类型:void
% * 函数功能:搜索手写数字的位置,赋值给bottomdownrightleft
% ****************************************************************/
% void GetFeature::GetPosition()
% {
% width=GetWidth();
% height=GetHeight();
% LineBytes=(width*8+31)/32*4;
%
% int ij;
% BOOL flag;
% for(j=0;j % {
% flag=FALSE;
% for(i=0;i % if(m_pData[j*LineBytes+i]==0)
% {
% flag=TRUE;
% break;
% }
% if(flag)
% break;
% }
% bottom=j;
% for(j=height-1;j>0;j--)
% {
% flag=FALSE;
% for(i=0;i % if(m_pData[j*LineBytes+i]==0)
% {
% flag=TRUE;
% break;
% }
% if(flag)
% break;
% }
% top=j;
% for(i=0;i % {
% flag=FALSE;
% for(j=0;j % if(m_pData[j*LineBytes+i]==0)
% {
% flag=TRUE;
% break;
% }
% if(flag)
% break;
% }
% left=i;
% for(i=width-1;i>0;i--)
% {
% flag=FALSE;
% for(j=0;j % if(m_pData[j*LineBytes+i]==0)
% {
% flag=TRUE;
% break;
% }
% if(flag)
% break;
% }
% right=i;
% }
%
% /***************************************************************
% * 函数名称:SetFeature()
% * 函数类型:void
% * 函数功能:将手写数字特征保存在变量testsample中
% ****************************************************************/
% void GetFeature::SetFeature()
% {
% int ij;
% for(j=0;j<5;j++)
% {
% for(i=0;i<5;i++)
% {
% testsample[5*(4-j)+i]=Cal(ji);//(Cal(ji)>0.10)?1:0;//
% }
%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5149 2013-11-13 15:28 手写数字识别matlab实现\Getfeature.m
文件 13798 2013-11-13 15:28 手写数字识别matlab实现\homework.fig
文件 41192 2013-11-13 15:28 手写数字识别matlab实现\homework.m
文件 32253 2013-11-13 15:28 手写数字识别matlab实现\losstab.fig
文件 98958 2013-11-13 15:28 手写数字识别matlab实现\losstab.m
文件 545 2013-11-13 15:28 手写数字识别matlab实现\readme.txt
文件 12990 2013-11-13 15:28 手写数字识别matlab实现\samplelib.fig
文件 34678 2013-11-13 15:28 手写数字识别matlab实现\samplelib.m
文件 2643 2013-11-13 15:28 手写数字识别matlab实现\save_sample.fig
文件 5287 2013-11-13 15:28 手写数字识别matlab实现\save_sample.m
文件 24661 2013-11-13 15:28 手写数字识别matlab实现\template.mat
目录 0 2013-11-13 15:28 手写数字识别matlab实现
----------- --------- ---------- ----- ----
272154 12
- 上一篇:MATLAB 字符识别
- 下一篇:EKF MATLAB函数
相关资源
- 这是一个用matlab实现的RBF神经网络手
- 手写数字的识别。基于人工神经网络
- 手写数字识别.贝叶斯分类算法
- 基于matlab的简单手写数字识别
- 基于matlab的手写数字识别系统
- 基于神经网络的手写数字识别MATLAB源
- 多特征 MNIST库 手写数字识别 matlab 实
- 单特征 MNIST库 手写数字识别实现mat
- MATLAB神经网络手写数字识别GUI,论文
- MATLAB基于BP神经网络的手写数字识别代
- SVM的手写数字识别(Handwriting recogni
- BP神经网络手写数字识别完整代码ma
- 基于MATLAB的手写数字识别系统设计.
- matlab手写数字识别(代码+毕业论文
- MNIST-handwritten-digits 手写数字识别数据
- handwritingPrecognitionPGUI 基于BP神经网络
- shouxieshuzishibie 这个基于matlab的手写数
- 手写数字识别系统GUI.zip
评论
共有 条评论