可以把代码贴出来吗,这样看有点难受
%车牌字符分割
[H,L]=size(d);
w1=0;
while sum(d(:,w1+1))==0 && w1<L %判断出第一个字符的起始位置(因为起始位前面都是黑色 都为0)
w1=w1+1;%当前面列和为0时,就将列坐标加一
end
w2=w1;
while sum(d(:,w2+1))~=0 && w2<L %判断出第一个字符的最后位置(因为有字符的地方都是白色 不为0)
w2=w2+1;
end
w3=w2;
while (w3-w1)<(L/ 8)%但因为像“川”字,就有中间部分为黑色,故必须让有白色部分的区域大于整个车牌的八等份
w3=w3+1;
end
e1=imcrop(d,[w1 1 w3-w1 H]);%w1 1为顶点坐标 w3-w1为宽,H为高
figure(5),subplot(3,1,2),imshow(e1);
title('第一个字符分割');
d=imcrop(d,[w3 1 L-w3 H]); %1 1为顶点坐标 n为宽,jj为高
figure(5),subplot(3,1,3),imshow(d);
title('分割一个字符后的图片');
% 分割出第二个字符
[H,L]=size(d);
w1=0;
while sum(d(:,w1+1))==0 && w1<L %判断出第一个字符的起始位置(因为起始位前面都是黑色 都为0)
w1=w1+1;%当前面列和为0时,就将列坐标加一
end
w2=w1;
while sum(d(:,w2+1))=0 && w2<L=0 && w2<L %判断出第一个字符的最后位置(因为有字符的地方都是白色 不为0)
w2=w2+1;
end
w3=w2;
while (w3-w1)<(L/6)
w3=w3+1;
end
e2=imcrop(d,[w1 1 w3-w1 H]);%w1 1为顶点坐标 w3-w1为宽,H为高
figure(6),subplot(4,1,1),imshow(e2);
title('第二个字符分割');
d=imcrop(d,[w3 1 L-w3 H]); %1 1为顶点坐标 n为宽,jj为高
figure(6),subplot(4,1,2),imshow(d);
title('分割两个字符后的图片');
% 分割出第三个字符
[H,L]=size(d);
w1=0;
while sum(d(:,w1+1))==0 && w1<L %判断出第一个字符的起始位置(因为起始位前面都是黑色 都为0)
w1=w1+1;%当前面列和为0时,就将列坐标加一
end
w2=w1;
while sum(d(:,w2+1))
w2=w2+1;
end
w3=w2;
while (w3-w1)<(L/8)
w3=w3+1;
end
e3=imcrop(d,[w1 1 w3-w1 H]);%w1 1为顶点坐标 w3-w1为宽,H为高
figure(6),subplot(4,1,3),imshow(e3);
title('第三个字符分割');
d=imcrop(d,[w3 1 L-w3 H]); %1 1为顶点坐标 n为宽,jj为高
figure(6),subplot(4,1,4),imshow(d);
title('分割三个字符后的图片');
% 分割出第四个字符
[H,L]=size(d);
w1=0;
while sum(d(:,w1+1))==0 && w1<L %判断出第一个字符的起始位置(因为起始位前面都是黑色 都为0)
w1=w1+1;%当前面列和为0时,就将列坐标加一
end
w2=w1;
while sum(d(:,w2+1))~=0 && w2<L
w2=w2+1;
end
w3=w2;
while (w3-w1)<(L/4)
w3=w3+1;
end
e4=imcrop(d,[w1 1 w3-w1 H]);%w1 1为顶点坐标 w3-w1为宽,H为高
figure(7),subplot(4,1,1),imshow(e4);
title('第四个字符分割');
d=imcrop(d,[w3 1 L-w3 H]); %1 1为顶点坐标 n为宽,jj为高
figure(7),subplot(4,1,2),imshow(d);
title('分割四个字符后的图片');
% 分割出第五个字符
[H,L]=size(d);
w1=0;
while sum(d(:,w1+1))==0 && w1<L %判断出第一个字符的起始位置(因为起始位前面都是黑色 都为
while (w3-w1)<(L/ 8)%但因为像“川”字,就有中间部分为黑色,故必须让有白色部分的区域大于整个车牌的八等份
w3=w3+1;
end
思路:上面你都人为的直接w3加到1/8的L了那么,逆开始就预处理一下呗,将原始车牌八等分,然后分别在8个小图片里按列寻找字符。
然后,对于你问的问题,具体报错信息是什么?只是没有结果输出嘛?理论讲182行并没有什么错误。你可以去打印输出一下每次分割图片后剩余图片的宽高变化。给我感觉问题原因是多次分割后图像宽高发生了变化,后续读取的列索引直接过大跳出循环,不能输出图片。