车牌识别程序及说明Word下载.docx
- 文档编号:16545512
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:15
- 大小:234.48KB
车牌识别程序及说明Word下载.docx
《车牌识别程序及说明Word下载.docx》由会员分享,可在线阅读,更多相关《车牌识别程序及说明Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
imshow(w2);
维纳滤波'
2.图像二值化
fmax1=double(max(max(I1)));
fmin1=double(min(min(I1)));
level=(fmax1-(fmax1-fmin1)/3)/255;
bw2=im2bw(I1,level);
bw22=double(bw2);
figure,imshow(bw22),title('
图像二值化'
3.边缘检测及开运算闭运算
lubo=edge(bw22,'
log'
imshow(bw2);
Log算子边缘检测'
%图象边缘检测
bg1=imclose(lubo,strel('
rectangle'
[1,33]));
subplot(2,2,2),imshow(bg1);
图像闭运算[1,33]'
bg3=imopen(bg1,strel('
subplot(2,2,3),imshow(bg3);
图像开运算[1,33]'
bg2=imopen(bg3,strel('
[12,1]));
subplot(2,2,4),imshow(bg2);
图像开[15,1]'
4.图像标记
[L,num]=bwlabel(bg2,8);
%标注二进制图像中已连接的部分
%Feastats=imfeature(L,'
basic'
%计算图像区域的特征尺寸
%Area=[Feastats.Area];
%区域面积
%BoundingBox=[Feastats.BoundingBox];
%[xywidthheight]车牌的框架大小
%RGB=label2rgb(L,'
spring'
'
k'
shuffle'
%标志图像向RGB图像转换
figure,imshow(L);
图像标记'
%输出框架的彩色图像
5.形态滤波
I5=bwareaopen(L,1000);
%去除聚团灰度值小于2000的部分
figure,imshow(I5),title('
形态滤波后图像'
6.形态滤波车牌定位及字符分割
[y,x,z]=size(I5);
I6=double(I5);
Y1=zeros(y,1);
fori=1:
y
forj=1:
x
if(I6(i,j,1)==1)
Y1(i,1)=Y1(i,1)+1;
end
end
[tempMaxY]=max(Y1);
figure();
subplot(3,2,1),plot(0:
y-1,Y1),title('
行方向像素点灰度值累计和'
),xlabel('
行值'
),ylabel('
像素'
PY1=MaxY;
while((Y1(PY1,1)>
=50)&
&
(PY1>
1))
PY1=PY1-1;
PY2=MaxY;
while((Y1(PY2,1)>
(PY2<
y))
PY2=PY2+1;
IY=I(PY1:
PY2,:
:
X1=zeros(1,x);
fori=PY1:
PY2
if(I6(i,j,1)==1)
X1(1,j)=X1(1,j)+1;
subplot(3,2,2),plot(0:
x-1,X1),title('
列方向像素点灰度值累计和'
列值'
像数'
PX1=1;
while((X1(1,PX1)<
3)&
(PX1<
x))
PX1=PX1+1;
PX2=x;
while((X1(1,PX2)<
(PX2>
PX1))
PX2=PX2-1;
PX1=PX1-1;
PX2=PX2+1;
%分割出车牌图像%
dw=I(PY1:
PY2,PX1:
PX2,:
subplot(3,2,3),imshow(dw),title('
定位剪切后的彩色车牌图像'
)
ifisrgb(dw)
II1=rgb2gray(dw);
%将RGB图像转化为灰度图像
elseII1=dw;
end
g_max=double(max(max(II1)));
g_min=double(min(min(II1)));
T=round(g_max-(g_max-g_min)/3);
%T为二值化的阈值
[m,n]=size(II1);
%d:
二值图像
%h=graythresh(I1);
II=im2bw(II1,T/256);
subplot(3,2,4);
imshow(II),title('
二值化车牌图像'
I2=bwareaopen(II,20);
subplot(3,2,5);
imshow(I2),title('
形态学滤波后的二值化图像'
[y1,x1,z1]=size(I2);
I3=double(I2);
TT=1;
%%%%%%%去除图像顶端和底端的不感兴趣区域%%%%%
Y1=zeros(y1,1);
y1
x1
if(I3(i,j,1)==1)
Y1(i,1)=Y1(i,1)+1;
Py1=1;
Py0=1;
while((Y1(Py0,1)<
20)&
(Py0<
y1))
Py0=Py0+1;
Py1=Py0;
while((Y1(Py1,1)>
=20)&
(Py1<
Py1=Py1+1;
I2=I2(Py0:
Py1,:
subplot(3,2,6);
目标车牌区域'
%%%%%%分割字符按行积累量%%%%%%%
X1=zeros(1,x1);
forj=1:
plot(0:
x1-1,X1),title('
累计像素量'
Px0=1;
Px1=1;
%%%%%%%%%%%%分割字符%%%%%%%%%%%%%%%%%%
fori=1:
7
while((X1(1,Px0)<
(Px0<
x1))
Px0=Px0+1;
Px1=Px0;
while(((X1(1,Px1)>
=4)&
(Px1<
x1))||((Px1-Px0)<
10))
Px1=Px1+1;
Z=I2(:
Px0:
Px1,:
switchstrcat('
Z'
num2str(i))
case'
Z1'
PIN0=Z;
Z2'
PIN1=Z;
Z3'
PIN2=Z;
Z4'
PIN3=Z;
Z5'
PIN4=Z;
Z6'
PIN5=Z;
otherwise
PIN6=Z;
figure(8);
subplot(1,7,i);
imshow(Z);
Px0=Px1;
Px0=1;
附录:
子函数
functioninpt=pretreatment(dw)
%YUCHULISummaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
else
II1=dw;
II1=imresize(II1,[5020]);
%将图片统一划为50*20大小
II1=im2bw(II1,0.9);
inpt=zeros(1,m*n);
%%%%%%将图像按列转换成一个行向量
n
m
inpt(1,m*(j-1)+i)=II1(i,j);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车牌 识别 程序 说明