车牌号和身份证号的提取

车牌号和身份证号的提取_第1张图片
车牌号和身份证号的提取_第2张图片
车牌号和身份证号的提取_第3张图片
车牌号和身份证号的提取_第4张图片
车牌号和身份证号的提取_第5张图片
车牌号和身份证号的提取_第6张图片
车牌号和身份证号的提取_第7张图片
车牌号和身份证号的提取_第8张图片
车牌号和身份证号的提取_第9张图片
开运算先腐蚀后膨胀
开运算的特点主要是消除小目标,断开目标间的细微连接,平滑目标轮廓,较好的保持目标大小
闭运算先膨胀后腐蚀
闭运算的特点主要是连接目标中的狭窄间断,填充目标中的小洞,填补目标轮廓线中的断裂,平滑目标轮廓

代码:身份证号提取
车牌号和身份证号的提取_第10张图片

clear,clc,close all;
f=imread('id.jpg');
%转换为二进制并反转(黑变白白变黑)
b=~im2bw(f);
figure,imshow(b);
%构造结构元素(矩形,宽10px高20px)
se=strel('rectangle',[10,20]);
%进行闭运算(先膨胀后腐蚀)
fclose=imclose(b,se);
figure,imshow(fclose);
%构造线性构造元素 长250px 角度为0平行于水平轴
se1=strel('line',250,0);
%进行腐蚀运算  腐蚀运算为将结构快完全放在目标元素中平移,和结构块元素中心的那一块元素重合的保留,其他的被腐蚀
ferode=imerode(fclose,se1);
figure,imshow(ferode);
%重构造 根据ferode重新构造fclose,在fercode保留和fclose在相同位置的大块元素
frec=imreconstruct(ferode,fclose);
figure,imshow(frec);
frec2=imreconstruct(frec,b);
figure,imshow(frec2);
[h,w]=find(frec2);
hmax=max(h);
hmin=min(h);
wmax=max(w);
wmin=min(w);
crop=frec2(hmin:hmax,wmin:wmax);
figure,imshow(crop);

运行结果:
车牌号和身份证号的提取_第11张图片
车牌号和身份证号的提取_第12张图片
车牌号和身份证号的提取_第13张图片
车牌号和身份证号的提取_第14张图片
车牌号和身份证号的提取_第15张图片
车牌号和身份证号的提取_第16张图片

代码:车牌号提取
车牌号和身份证号的提取_第17张图片

clear,clc,close all;
f=imread('车牌.png');
b=im2bw(f,0.85);
figure,imshow(b);
se=strel('rectangle',[10,5]);
ferode=imerode(b,se);
figure,imshow(ferode);
se=strel('disk',2);
bditade=imerode(b,se);
figure,imshow(ferode);
brecon=imreconstruct(ferode,b);
imshow(brecon);
[hs,ws]=find(brecon);
a=min(hs);b=max(hs);
c=min(ws);d=max(ws);
finalresult=brecon(a:b,c:d);
figure,imshow(finalresult);

运行结果:
车牌号和身份证号的提取_第18张图片

资料下载

你可能感兴趣的:(matlab)