资源描述:
《基于MATLAB的图像处理字母识别.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数字图像处理报告名称:字母识别学院:信息工程与自动化学院专业:物联网工程学号:201310410149学生姓名:廖成武指导教师:王剑日期:2015年12月28日教务处制目录字母识别1.---------------------测试图像预处理及连通区域提取2.---------------------样本库的建立采集feature3.---------------------选择算法输入测试图像进行测试4.---------------------总结字母识别1.imgPreProcess(联通区域提取)目录下conn.m:连通区
2、域提取分割(在原图的基础上进行了膨胀、腐蚀、膨胀的操作使截取的图像更加接近字母)%%提取数字的边界,生成新的图clear;clc;f=imread('5.jpg');f=imadjust(f,[01],[10]);SE=strel('square',5);%%膨胀、腐蚀、膨胀A2=imdilate(f,SE);SE=strel('disk',3)f=imerode(A2,SE)SE=strel('square',3);f=imdilate(f,SE);gray_level=graythresh(f);f=im2bw(f,gray
3、_level);[l,n]=bwlabel(f,8)%%8连接的连接分量标注imshow(f)holdonfork=1:n%%分割字符子句[r,c]=find(l==k);rbar=mean(r);cbar=mean(c);plot(cbar,rbar,'Marker','o','MarkerEdgeColor','g','MarkerFaceColor','y','MarkerSize',10);%plot(cbar,rbar,'Marker','*','MarkerEdgecolor','w');row=max(r)-min
4、(r)col=max(c)-min(c)fori=1:rowforj=1:colseg(i,j)=1;endendcon=[r-min(r)+1,c-min(c)+1];[a,b]=size(con);fori=1:aseg(con(i,1),con(i,2))=0;endimwrite(seg,strcat('seg',int2str(k),'.bmp'));%seg=zeros(size(seg));clearseg;end截取后的图像2.digitalRec目录下进行样本库的的建立并采集feature在对截取出来的图像进行
5、识别之前要先输入样本并提取特征进入templet.mat:我自己通过WORLD打出字母后截屏下来获得字母样本并各自命名.jpg放入digitalRec目录下用以建立样本库获取特征。对每个字母都进行下面代码的的执行得到新的1x14的pattern得到各个字母(前9个为数字1~9)每个cell内的feature信息,因为样本有限在此每个字母只提取一次feature。运行digRec01.mclearall;clc;loadtemplet;%A被分成5*5=25个cell%注意A的size(长和宽都需被定义成5的倍数,因为后面要被5除
6、)A=imread('a.jpg');A=imresize(A,[2525])%%将输入图像转化为25*25的尺寸figure(1),imshow(A)B=zeros(1,25);%%初始化一个B用于存放25个cell的feature[rowcol]=size(A);%%得到图像的长宽cellRow=row/5cellCol=col/5count=0;currentCell=1;forcurrentRow=0:4%%遍历25个cell获取featureforcurrentCol=0:4fori=1:cellRowforj=1:c
7、ellColif(A(currentRow*cellRow+i,currentCol*cellCol+j)==0)count=count+1;endendendratio=count/(cellRow*cellCol);B(1,currentCell)=ratio;%%将feature信息存入B中currentCell=currentCell+1;count=0;endendpattern(11).num=1;%%每个字母只有一个样本pattern(11).feature(:,1)=B';%%将B置入patternsavetem
8、pletpatternpattern、pattern.feature:3.digitalRec目录下进行图像测试在将截取下来的图像放入digitalRec目录下并改名为.bmp作为测试输入图像由于用到imshow([num2str(class),'.jpg'])