基于MATLAB的图像处理字母识别
字母识别
1.imgPreProcess(联通区域提取)目录下
conn.m:连通区域提取分割(在原图的基础上进行了膨胀、腐蚀、膨胀的操作使截取的图像更加接近字母)
%%提取数字的边界,生成新的图
clear;
clc;
f=imread('5.jpg');
f=imadjust(f,[0 1],[1 0]);
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_level);
[l,n]=bwlabel(f,8) %%8连接的连接分量标注
imshow(f)
hold on
for k=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(r)
col=max(c)-min(c)
for i=1:row
for j=1:col
seg(i,j)=1;
end
end
con=[r-min(r)+1,c-min(c)+1];
[a,b]=size(con);
for i=1:a
seg(con(i,1),con(i,2))=0;
end
imwrite(seg,strcat('seg',int2str(k),'.bmp'));
%seg=zeros(size(seg));
clear seg;
end
截取后的图像