matlab imcrop 对应python函数_MATLAB车牌识别之车牌精准定位浅谈

004e66d7231836954673c491d9e2c716.png

先附上一段代码,带大家看下具体车牌是如何进行精准定位的,以通俗易懂之语言,抽丝剥茧,配图带大家走一遍。

以下代码为车牌定位的代码段落:

function [e] = qiege(d)% 切割出车牌区域的最小范围,进一步定位字符区域

[m,n]=size(d);

top=1;bottom=m;

while sum(d(top,:))==0&&top<=m

top=top+1;

end

while sum(d(bottom,:))==0&&bottom>=1

bottom=bottom-1;

end

left=1;right=n;

while sum(d(:,left))==0&&left<=n

left=left+1;

end

while sum(d(:,right))==0&&right>=1

right=right-1;

end

dd=right-left;

hh=bottom-top;

e=imcrop(d,[left top dd hh]);

% I2=imcrop(I,[a b c d]);

%利用裁剪函数裁剪图像,其中,(a,b)表示裁剪后左上角像素在原图像中的位置;

%c表示裁剪后图像的宽,d表示裁剪后图像的高

%%%%%%%%以下为图文讲解,讲得好的话,大家可以私聊我鼓励,并且转发,点赞

4.七个小矮人在哪里——字符分割

4.1 永远的开胃菜——灰度化和二值图

对上图得到的彩色矩【需要车牌识别源码及直播详细语音讲解可私xin我】形车牌进行灰度化,二值图像处理,这两步很简单,用库函数即可,得到的二值图结果如下图所示:

b20eaeeaaaba0cc6c3123de9158b89fa.png
车牌粗定位,未去除铆钉等杂质

4.2 精雕细琢——去除杂质

4.2.1 门槛——bwareaopen让小的白色块消失去吧

从上图我们可以清晰地发现,譬如左上角还是有干扰白色块,以及有过多非字符区域的黑色区域,这些都是干扰区域,应该去除掉才能提高准确率或者不至于出现误匹配。

c679613c47c7e23566ec19cfe00cce93.png
干扰区域示意图

这里,需要做2步,其一是利用bwareaopen函数去除面积小于一定值的白色块,如上图的红色圈圈部分的点。

4.2.2 无限逼近——上下、左右游标动起来

其二,将除了7个白色字符最外接矩形以外的黑色区域去除,如上图的红色矩形框部分。

这里自定义qiege子函数,以上下,左右游标无限逼近的方法来精准定位字符区域。贴上代码。

31ba09d7fa4c20b0ebd5068dbe721081.png
代码段截图

先设置第top=1行游标,最后一行buttom=m游标,统计这两行各自上面的行向的像素值,如果像素总和是0,也就是全黑,还没有遇到白色像素点的时候,上游标不断加1,也就是不断往下移动,下游标不断减一,也及时不断往上移动,一直到碰到白色像素点为止。用更形象生动的示意图来表示就是:

1b4f942cc1853aef2888e22d4f4bb201.png
上下游标移动示意图

同理,以同样方式标记下左右游标位置。如下图2和4的位置。

bb0ef19710dfb76040a13513cd6212fc.png
代码段

de626f56574e9a15f7a688adb4d8401b.png
左右游标移动示意图

记录下最外接矩形位置,再利用MATLAB库函数imcrop进行裁剪,得到精准定位的车牌区域。如下图:

1e02703da693ea5fe21a4c12e27c1272.png
精准定位,不含杂质,边际紧贴白色字符

%%%%%%%%%创作不易,请点赞收藏,整个专辑可以发给同学参考%%%%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值