当前位置:文档之家› 基于MATLAB的车牌识别

基于MATLAB的车牌识别

liccode=char(['0':'9' 'A':'Z' '京津沪渝冀晋辽吉黑苏浙皖闽赣鲁豫鄂湘粤琼川贵云陕甘蒙新青藏桂宁港']); %建立自动识别字符代码表
l=1;
[m2,n2]=size(subcol);
for k=findmax-4:findmax+3
cleft=markcol5(k)-maxwidth/2;
cright=markcol5(k)+maxwidth/2-2;
if cleft<1
cleft=1;
cright=maxwidth;
end
if cright>n2
cright=n2;
cleft=n2-maxwidth;
end
SegBw1=sbw(rowtop:rowbot,cleft:cright);
SegBw2 = imresize(SegBw1,[32 16]); %变换为32行*16列标准子图
if l==1 %第一位汉字识别
kmin=37;
kmax=68;
elseif l==2 %第二位A~Z 字母识别
kmin=11;
kmax=36;
elseif l>=3 & l<=5 %第三、四位0~9 A~Z字母和数字识别
kmin=1;
kmax=36;
else %第五~七位0~9 数字识别
kmin=1;
kmax=10;
end
for k2=kmin:kmax
fname=strcat('D:\sample\',liccode(k2),'.bmp');
SamBw2 = imread(fname,'bmp');
SubBw2 = SamBw2-SegBw2;
Dmax=0;
for k1=1:32
for l1=1:16
if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 )
Dmax=Dmax+1;
end
end
end
Error(k2)=Dmax;
end
Error1=Error(kmin:kmax);
MinError=min(Error1);
findc=find(Error1==MinError);
RegCode(l*2-1)=liccode(findc(1)+kmin-1);
RegCode(l*2)=' ';
l=l+1;
end
title (['识别车牌号码:', RegCode],'Color','r');
运行结果总是出错:
??? Error using ==> minus
Integers can only be combined with integers of the same class, or scalar doubles.
这怎么解决啊?大家帮帮忙啊!。

相关主题