前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python|传统方法实现车牌定位

Python|传统方法实现车牌定位

作者头像
福贵
发布2019-07-24 14:21:08
1.4K0
发布2019-07-24 14:21:08
举报
文章被收录于专栏:合集合集

如果给你一张图片,你会怎么找出图片中的车牌呢?是用传统的方法依靠特征筛选找到车牌?还是用新款的RTX2080Ti煤气灶来炼丹呢?

虽然我知道炼丹只需要丢原材料,但是很明显,我连原材料都不会放,那么我只能老老实实地选择最传统的依靠车牌的特征从而来定位它了。

分析车牌,发现车牌有以下特征:

  • 车牌的长宽比是由大小的限制的,一般长比宽不回大于5,也不会小于2;
  • 车牌在一张图片中的面积也是有大小的,具体要根据拍摄的位置估算一张车牌的面积;
  • 车牌内的字符将车牌内各区域分割开来。

车牌定位思路

  1. 图片裁剪
  2. 去噪
  3. 黑白化
  4. 区域扩充
  5. 轮廓查找
  6. 区域筛选

图片裁剪中,以下图为例,我们需要的部分是这一部分,因此,图片的裁剪中,我们即便不知道车牌的位置,但是我们稍微把图片外圈裁剪掉,总不会出错的。

然后去除图片的噪声就好,建议先灰度化,然后使用高斯滤波即可,因为灰度化可以减少运算量,而高斯噪声又是最常见的噪声。

紧接着,将图片黑白化即可,使用Sobel算子做x方向上的锐化,则可以保留更多的车牌边缘,然后将锐化的结果使用大津法直接黑白化即可。

之后就是进行车牌区域的扩充,先进行一次二值形态学的开操作,可以去掉一些细节,紧接着使用长方形的矩形结构元素来膨胀能够将车牌区域扩充。

之后再进行轮廓的查找,找到图片中所有的轮廓即可。

如果你能够成功地将车牌的轮廓找出来,那么你接下来就是将其筛选出来了。

在图片中,车牌区域的面积不会过高,也不会过低。

车牌特征中,长宽比很重要

考虑到车牌的文字之间存在间隙,因此对选出的区域在竖直方向进行二值形态学的膨胀,进行20次的膨胀,保证整个区域竖直方向全部填充。

下面图片左边为车牌区域进行膨胀,右边则是其他区域。

代码依旧放在了github。https://github.com/Rare0716/plateNumberLocation

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与MySQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档