matlab imcrop 对应python函数_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】

0b151bb2ec8fbfd1349e6139bda86359.png

车牌识别的7个字符切割,可能大家都听过是所谓的连通域法切割,可是何为连通域呢,估计98.98%的朋友,包括绝大部分老师都不知道所以然,今天就该问题抽丝剥茧进行讲解。

先来一段代码:

% 7个分割字符

function [word,result]=getword(d)

word=[];flag=0;y1=8;y2=0.5;

while flag==0

[m,n]=size(d);

wide=0;

% while sum(d(:,wide+1))~=0 && wide<=n-2 %只要不等于零就一直运行 直到找到边界

while sum(d(:,wide+1))~=0 && wide<=n-2 %不等于0,那就是1,也就是白色像素

wide=wide+1;

end

temp=qiege(imcrop(d,[1 1 wide m]));%imcrop(a b m n)表示从a行b列开始,裁剪长宽为m n

[m1,n1]=size(temp);%m1竖长,n1行长

if wide<y1 && n1/m1>y2 %%%分割数wide小于8,且切割到的字符宽/高大于0.5

d(:,[1:wide])=0;

if sum(sum(d))~=0

d=qiege(d); % 切割 出最小范围

else word=[];flag=1;

end

else

word=qiege(imcrop(d,[1 1 wide m]));

d(:,[1:wide])=0;

if sum(sum(d))~=0;

d=qiege(d);flag=1;

else d=[];

end

end

end

result=d;

%%%讲解开始咯

4.3 字符的切割

4.3.1 打响反对派的第一枪——从左到右移动游标切割第一个字符

字符切割的思想,利用的是连通域方法。所谓连通域就是画一根竖线,在车牌二值图从左到右移动,统计竖线上的像素和,一旦[通俗到你会骂我是俗人]像素和为0了,则说明捕捉到一个独立的字符。则将该字符进行切割出来。将剩【感兴趣可联系我】余区域的图像作为新的“车牌图片”,以此类推进行切割。附上代码部分截图。

1764fc0db1fe89ac4afc489b91409d03.png

上图中,349行的d为预处理完的车牌二值图像,设置一根竖直的游标,起始坐标为wide=wide+1=0+1=1,即第一列,统计其纵坐标方向像素值,用MATLAB中sum(d(:,j)),第351行中表示,一旦游标列项像素不为0,也就是为1,有白色像素点的时候,游标一直往右边移动,一直到白色像素【全球唯一深研车牌每个代码之人】点消失为止,此时记下wide为止,用切割函数imcrop函数切割出第一个字符,如第355行代码所示。示意图如下图:

11cb29e87b4c86e2c5f49479e8744954.png

切割到第一个字符后,那么358行代码中, d(:,[1:wide])=0表示将原来车牌二值图从第1列到第wide列,也就是第一个字符结束的地方全部置0,变成黑色,执行完这个操作后,正副车牌二值图就变为:

ca7cb6808d73319774858af76cf23976.png

4.3.2 人走茶凉——切割完一个字符就填充为黑色

有没有一种人走茶凉的感觉,因为“冀”字离开了,就把人家窝都给铲了,好比是外嫁的女儿,嫁人了,娘家却连个房间都没有。然后继续。。。。。。【可私心直播我了解整个过程】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值