如果给你一张图片,你会怎么找出图片中的车牌呢?是用传统的方法依靠特征筛选找到车牌?还是用新款的RTX2080Ti煤气灶来炼丹呢?
虽然我知道炼丹只需要丢原材料,但是很明显,我连原材料都不会放,那么我只能老老实实地选择最传统的依靠车牌的特征从而来定位它了。
分析车牌,发现车牌有以下特征:
车牌定位思路
图片裁剪中,以下图为例,我们需要的部分是这一部分,因此,图片的裁剪中,我们即便不知道车牌的位置,但是我们稍微把图片外圈裁剪掉,总不会出错的。
然后去除图片的噪声就好,建议先灰度化,然后使用高斯滤波即可,因为灰度化可以减少运算量,而高斯噪声又是最常见的噪声。
紧接着,将图片黑白化即可,使用Sobel算子做x方向上的锐化,则可以保留更多的车牌边缘,然后将锐化的结果使用大津法直接黑白化即可。
之后就是进行车牌区域的扩充,先进行一次二值形态学的开操作,可以去掉一些细节,紧接着使用长方形的矩形结构元素来膨胀能够将车牌区域扩充。
之后再进行轮廓的查找,找到图片中所有的轮廓即可。
如果你能够成功地将车牌的轮廓找出来,那么你接下来就是将其筛选出来了。
在图片中,车牌区域的面积不会过高,也不会过低。
车牌特征中,长宽比很重要
考虑到车牌的文字之间存在间隙,因此对选出的区域在竖直方向进行二值形态学的膨胀,进行20次的膨胀,保证整个区域竖直方向全部填充。
下面图片左边为车牌区域进行膨胀,右边则是其他区域。
代码依旧放在了github。https://github.com/Rare0716/plateNumberLocation
本文分享自 Python与MySQL 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!