一、算法步骤
1.测试图像预处理及连通区域提取
2.样本库的建立采集feature
3.选择算法输入测试图像进行测试
二、识别过程+源码
1.连通区域提取分割(在原图的基础上进行了膨胀、腐蚀、膨胀的操作使截取的图像更加接近字母)
%%提取数字的边界,生成新的图
clear;
clc;
f=imread('识别图片.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',int2