求高手解释下下面一段程序,Matlab,顺便说下用的是什么方法切割的,很急!!!
[m,n]=size(d);
d为已经处理过的车牌图像
k1=1;k2=1;s=sum(d);j=1;
while j~=n
while s(j)==0
j=j+1;
end
k1=j;
while s(j)~=0 && j<=n-1
j=j+1;
end
k2=j-1;
if k2-k1>=round(n/6.5)
[val,num]=min(sum(d(:,[k1+5:k2-5])));
d(:,k1+num+5)=0; % 分割
end
end
% 再切割
d=qiege(d);
% 切割出 7 个字符
y1=10;y2=0.25;flag=0;word1=[];
while flag==0
[m,n]=size(d);
left=1;wide=0;
while sum(d(:,wide+1))~=0
wide=wide+1;
end
if wide<y1 % 认为是左侧干扰
d(:,[1:wide])=0;
d=qiege(d);
else
temp=qiege(imcrop(d,[1 1 wide m]));
[m,n]=size(temp);
all=sum(sum(temp));
two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));
if two_thirds/all>y2
flag=1;word1=temp; % WORD 1
end
d(:,[1:wide])=0;d=qiege(d);
end
end
追问:
我去~~我问的是用什么方法来切割字符的!
答案:大概解释下把 用的是列统计像素 如果找到连续的字符块 判断 if wide<y1 % 认为是左侧干扰
d(:,[1:wide])=0;
d=qiege(d);这个是qiege是切除背景干扰
如果切除的字符块 大于y1,且宽高比为1:2 ,就认为是有效字符 ,进行切割,其他字符同理
其他:车牌字符分割
上一个:请教matlab高手一段程序的意思
下一个:求自适应双边滤波matlab程序,各位大侠有的话,请发我份吧!急用!Email:ju_li_an@126.com