




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、子程序%特征生成方法1%function feature=Get_Feature(A)A=im2bw(A,0.5); %设置阈值为0.5,使用阈值变换法把灰度图像转化为二值图像%本方法把二值化的图片分为6部分a1=A(1:18,1:10);a2=A(1:18,11:20);a3=A(19:36,1:10);a4=A(19:36,11:20);f1=nnz(a1); %计算a1的非零元素总数f2=nnz(a2); %计算a2的非零元素总数f3=nnz(a3); %计算a3的非零元素总数f4=nnz(a4); %计算a4的非零元素总数%特征生成%feature=f1 f2 f3 f4 ; %fea
2、ture是一个4行1列的矩阵主程序% 使用1近邻和3近邻法对0-9个数字进行判别% 每个文件夹中的前30个为训练样本,后10个测试样本% 得到:sum为正确率% 清除运算空间clc;clear;%根据目录读取文件Path = E:数字识别 ; %目录名% 训练过程% 训练样本特征提取,得到10类各30个样本的特征值% 将所有的特征值合成一个300*4的矩阵%for j=1:10 TypeA = strcat(Path,num2str(j-1),); %获取训练样本目录 PicDirA = dir(TypeA,*.bmp); %dir 函数 for i=1:30 A=imread(TypeA,P
3、icDirA(i).name);%依次读入每个文件夹下的每个图片 Feature(:,i)=Get_Feature(A); %获取训练样本特征 end feature(1+(j-1)*30:j*30,:)=Feature;end% 测试部分% 将每类中剩余的10个样本提取特征% 计算每个待测样本与所有训练样本的欧式距离%disp(1近邻);sum1=0;sum2=0;sum3=0;sumz=0;sum3=0;sum4=0;sum5=0;sum6=0;sum7=0;sum8=0;sum9=0;sum0=0;for j=1:10 TypeA = strcat(Path,num2str(j-1),)
4、 ; %获取待测样本目录读0的文件夹(转成字符串型) PicDirA = dir(TypeA,*.bmp); %dir 函数列出所有0文件夹中为bmp的文件 for i=31:40 A=imread(TypeA,PicDirA(i).name); %获取待测样本文件名 Feature=Get_Feature(A); %获取待测样本特征值 for k=1:300 dis(k)=sqrt(sum(Feature-feature(k,:).2); %求取待测样本与各类所有点距离 end new,Ind=sort(dis); %将距离排序将距离给了new,把之前的序号给了Ind class0=0;cl
5、ass1=0;class2=0;class3=0;class4=0;class5=0;class6=0;class7=0;class8=0;class9=0;%计数清零 if Ind(1,1)30&Ind(1,1)60&Ind(1,1)90&Ind(1,1)120&Ind(1,1)150&Ind(1,1)180&Ind(1,1)210&Ind(1,1)240&Ind(1,1)270&Ind(1,1)=300 class9=class9+1; end class=class0,class1,class2,class3,class4,class5,class6,class7,class8,clas
6、s9;%将计数值合成一个矩阵 switch max(class) %判断最大计数值,并赋给相应的m值 case class0 m=0; case class1 m=1; case class2 m=2; case class3 m=3; case class4 m=4; case class5 m=5; case class6 m=6; case class7 m=7; case class8 m=8; case class9 m=9; end disp(sprintf(第%d张图片上数字是%d,i,m); %显示判断结果 % 计算正确率 if j=1&m=0 %当判断正确时相应值加1 sum
7、0=sum0+1; elseif j=2&m=1; sum1=sum1+1; elseif j=3&m=2 sum2=sum2+1; elseif j=4&m=3 sum3=sum3+1; elseif j=5&m=4 sum4=sum4+1; elseif j=6&m=5 sum5=sum5+1; elseif j=7&m=6 sum6=sum6+1; elseif j=8&m=7 sum7=sum7+1; elseif j=9&m=8 sum8=sum8+1; elseif j=10&m=9 sum9=sum9+1; end sumz=sum1+sum2+sum3+sum4+sum5+su
8、m6+sum7+sum8+sum9+sum0; end disp(-) end disp(sprintf(第%d个文件夹分类正确率为%4.2f%,1,100*sum0/10); %显示正确率 disp(sprintf(第%d个文件夹分类正确率为%4.2f%,2,100*sum1/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,3,100*sum2/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,4,100*sum3/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,5,100*sum4/10); disp(spr
9、intf(第%d个文件夹分类正确率为%4.2f%,6,100*sum5/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,7,100*sum6/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,8,100*sum7/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,9,100*sum8/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,10,100*sum9/10); disp(sprintf(总分分类正确率为%4.2f%,100*sumz/100); % 使用3近邻法识别照片中的数字 di
10、sp(3近邻); q=3;sum1=0;sum2=0;sum3=0;sumz=0;sum3=0;sum4=0;sum5=0;sum6=0;sum7=0;sum8=0;sum9=0;sum0=0;for j=1:10 TypeA = strcat(Path,num2str(j-1),) ; %获取待测样本目录读0的文件夹(转成字符串型) PicDirA = dir(TypeA,*.bmp); %dir 函数列出所有0文件夹中为bmp的文件 for i=31:40 A=imread(TypeA,PicDirA(i).name); %获取待测样本文件名 Feature=Get_Feature(A);
11、 %获取待测样本特征值 for k=1:300 dis(k)=sqrt(sum(Feature-feature(k,:).2); %求取待测样本与各类所有点距离 end new,Ind=sort(dis); %将距离排序将距离给了new,把之前的序号给了Ind class0=0;class1=0;class2=0;class3=0;class4=0;class5=0;class6=0;class7=0;class8=0;class9=0; for n=1:q if Ind(1,n)30&Ind(1,n)60&Ind(1,n)90&Ind(1,n)120&Ind(1,n)150&Ind(1,n)
12、180&Ind(1,n)210&Ind(1,n)240&Ind(1,n)270&Ind(1,n)=300 class9=class9+1; end end class=class0,class1,class2,class3,class4,class5,class6,class7,class8,class9; %将计数值合成一个矩阵 switch max(class) case class0 %判断最大计数值,并赋给相应的m值 m=0; case class1 m=1; case class2 m=2; case class3 m=3; case class4 m=4; case class5
13、m=5; case class6 m=6; case class7 m=7; case class8 m=8; case class9 m=9; end disp(sprintf(第%d张图片上数字是%d,i,m); % 计算正确率 if j=1&m=0 %当判断正确时相应值加1 sum0=sum0+1; elseif j=2&m=1; sum1=sum1+1; elseif j=3&m=2 sum2=sum2+1; elseif j=4&m=3 sum3=sum3+1; elseif j=5&m=4 sum4=sum4+1; elseif j=6&m=5 sum5=sum5+1; elsei
14、f j=7&m=6 sum6=sum6+1; elseif j=8&m=7 sum7=sum7+1; elseif j=9&m=8 sum8=sum8+1; elseif j=10&m=9 sum9=sum9+1; end sumz=sum1+sum2+sum3+sum4+sum5+sum6+sum7+sum8+sum9+sum0; end disp(-) end disp(sprintf(第%d个文件夹分类正确率为%4.2f%,1,100*sum0/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,2,100*sum1/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,3,100*sum2/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,4,100*sum3/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,5,100*sum4/10); disp(sprintf(第%d个文件夹分类正确率为%4.2f%,6,100*sum5/10); disp(spri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年实验室上岗试题及答案
- 2025年山西省政府采购评审专家考试真题含答案
- CN222959673U 直线型汽车座椅靠背电动锁栓 (浙江华悦汽车零部件股份有限公司)
- 2025年加氢模拟试题及答案
- 珠宝考研试题及答案
- 电厂检修培训考试题及答案
- CN120093336B 利用螺旋ct影像实现脊柱形变患者骨质疏松筛查的方法 (广东医科大学附属医院)
- CN120079912B 一种铝电机前端盖钻孔加工装置及加工方法 (山西三鼎机械制造股份有限公司)
- 2025年后置埋件题库及答案
- 国际贸易政策与经济波动
- 第五讲中日关系课件
- 开发区(园区)招商引资投资指南手册【超级完整版】课件
- 一年级上册语文全册课件
- 《礼仪规范教程》中职配套教学课件
- 颅脑外伤(共61张PPT)
- 项目部材料管理制度要点
- 消防安全检查记录表(完整详细版)1
- winmodv工厂可接受性测试、虚拟调试过程控制实时仿真
- 消费者行为学第01章导论
- 铁道概论全套课件
- 部编版二年级语文上册全册教案及反思
评论
0/150
提交评论