MATLAB识别车牌
I=imread('车牌.jpg');
[y,x,z]=size(I);
myI=double(I);
tic;
Blue_y=zeros(y,1);
for i=1:y;
for j=1:x;
if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119)));
Blue_y(i,1)=Blue_y(i,1)+1;
end
end
end
[temp MaxY]=max(Blue_y);
PY1=MaxY;
while((Blue_y(PY1,1)>=5)&&(PY1>1));
PY1=PY1-1;
end
PY2=MaxY;
while((Blue_y(PY2,1)>=5)&&(PY2<y));
PY2=PY2+1;
end
IY=I(PY1:PY2);
Blue_x=zeros(1,x);
for j=1:x;
for i=PY1:PY2;
if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119)));
Blue_x(1,j)=Blue_x(1,j)+1;
end
end
end
PX1=1;
while((Blue_x(1,PX1)<3)&&(PX1<x));
PX1=PX1+1;
End
PX2=x;
while((Blue_x(1,PX2)<3)&&(PX2>PX1));
PX2=PX2-1;
End
PX1=PX1-2;
PX2=PX2+2;
Plate=I(PY1:PY2,PX1-2:PX2);
t=toc;
figure,imshow(I);
figure,plot(Blue_y);
figure,plot(Blue_x);
figure,imshow(Plate);
t=0.5630;
首先这个算法中使用的前提是蓝色的背景的车牌,对于白色和黄色为背景颜色的车牌识别效果很差,所以这里可以使用边缘检测的方法对于车牌的位置进行寻找。课程设计不仅是对数字图像处理这门课所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我对模式识别有了更深入的认识。