- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手写体图片识别
学号:姓名:
学号:
姓名:
专业:通信工程
基于支持向量机的手写体数字图片识别
摘要:手写体图片识别有多种方法,基于支持向量机的手写体图片识别相比其它方法来说,所使用的样本数量较少,结果较为精确。因此,基于支持向量机的手写体图片识别有比较重要的意义,较好的方法将会在社会生活中发挥作用。本文以作者做的一个小程序来阐述手写体图片识别的基本步骤,本程序并不是最好的程序,有待改进。另外,由于时间有限,网上没有找到手写体图片训练样本,因此,作者亲自为本程序做了样本,但是只有30张图片。
关键词:手写体图片识别 向量机 数字图片 二值图像
引文:如今,社会生活中手写体图片识别有重要意义,各种方法应运而生。向量机相比神经网络来说需要的样本数量较少,是一种比较先进的方法。本程序首先需要采集手写体数字图片样本。首先找四位同学,请他们在空白纸上写下0到9十个数字。然后用ZJ886相机逐个数字进行拍片。任选3组作为训练样本,文件名命名规则为第一个数字代表实际数字,第二个数字为实际组数。例如:0的第一张样本我们命名为01.jpg,第二张命名为02.jpg。依次类推。我们通过第一个数字告诉了电脑训练图片的实际数字是多少。
正文:我们首先来记录一下整个实验步骤:首先,打开Matlab,新建M文件,
输入如下程序:
clear;
clc;
picformat={*.jpg,JPEG image(*,jpg);*.bmp,bitmap image(*,bmp);*.*,All files(*,*)};
%可以处理图片的各种格式
[filename, filepath]=uigetfile(picformat,导入训练图片,*.jpg,multiselect,on);%可以一次性选择多张图片输入
filename=cellstr(filename);%图片名字,如01,代表数字0的第一幅图片
n=length(filename);totalpicture=zeros(n,256);group=zeros(n,1);%亮度255代表白色
for i=1:n
I=imread([filepath,filename{i}]);I=255-I;I=im2bw(I,0.5);%反色处理并转化为二值图像
[y,x]=find(I==1);bw=I(min(y):max(y),min(x):max(x));%含完整数字的最小区域
bw=imresize(bw,[16,16]);%20×20像素大小
totalpicture(i,:)=double(bw(:));%将图像转化数字矩阵
group(i)=str2double(filename{i}(1));%图片对应的真实数字
end
train_pic=arrayfun(@(k)totalpicture(group==k,:),0:9,uniformoutput,false);%循环函数,即将指定的函数应用到给定数组的所有元素
nchk=nchoosek(0:9,2);%将0~9两两配对
svm=cell(size(nchk,1),1);%将0~9数字分类总共需要的向量机
for k=1:size(nchk,1)
t1=train_pic{nchk(k,1)+1};t2=train_pic{nchk(k,2)+1};%构成训练样本
svm{k}=svmtrain([t1;t2],[ones(size(t1,1),1);zeros(size(t2,1),1)],kernel_function,polynomial,polyorder,1); %支持向量机训练函数,核函数可以选用其他
end
%导入测试图片
[filename1, filepath1]=uigetfile(picformat,导入测试图片,*.jpg,multiselect,on);%可以一次性选择多张图片输入
filename=cellstr(filename1);%图片名字,如01,代表数字0的第一幅图片
m=length(filename1);totalpicture1=zeros(n,256);group1=zeros(n,1);%亮度255代表白色
for i=1:m
%true_num(i)=str2double(filename1{i}(1));%每幅图片代表的真实数字,文件名为01等
J=imread([filepath1,filename1{i}]);J=255-J;J=im2bw(J,0.5);[y,x]=find(J==1);
bw=J(min(y):max(y),min(x):max(x));bw=imresize(bw,[1
文档评论(0)