win7平台下基于qt5.1.1,opencv2.4.7的车牌定位切割识别

4 篇文章 0 订阅

        为期3礼拜,共8天的坑爹c++培训结束了,说实话挺坑爹的,老师是个架构师,口才不好,而且不喜欢我们学生的学习方式,总是强调我们不刻苦,没花时间(貌似因为他的独特个性,到最后一天,培训的人就走了一大半,最后坚持下来的也没多少人了),呵呵...自己承认自己就OK了,我也不想证明什么。不过我这人挺扣的,不想承认这三个礼拜时间白白流逝,所以还是总结了下自己体会到的东西。

         体会一:如果以公司的标准,你项目的得分只有0和100

                  因为老师是那个某培训机构到什么公司请来的,所以那个老师的标准也是企业标准,如果我们这个项目是学校的某个课程实验项目,那么老师会依照你的项目完成度和小组成员表现来打分,但是企业标准不同学校标准,企业只根据客户的满意度来评判你的项目,客户付钱了,你的项目就是满分,客户不满意,你的项目就跪了,你付出的精力时间都白费,自己不被认可的滋味一定不好受,所以如果要做企业型的人才,就要先清楚项目客户的要求,尽力满足客户要求,协调好组员的工作。

体会二:团队协作趣味多

我的组员都是实验室的小伙伴,我们实验室平时大的项目不多,所以大家都习惯自己一个人自学自己喜欢的东西,但这次培训给了我们团队协作的机会,通过这几天,我体会到了团队共为一个目标奋斗的乐趣,也更了解了小伙伴们各自的特点,每个人各有所长,每个人都是自己学习的对象。

体会三:自己的知识还是欠缺太多

那个老师虽然口才不行,但是在项目架构上还是很厉害的,再怎么说人家就是靠这个吃饭的,所以在项目开始的时候要先做足准备工作,了解技术上的难点并提出解决方案,但是我们别说提出技术难点了,我们拿到项目的时候连c++都没怎么接触过,界面都不知道怎么写,所以趁自己还在学校,抓紧时间多学点基础知识,多反思自己的不足。


YY结束,下面来谈谈win7平台下基于qt5.1.1,opencv2.4.7的车牌定位切割识别。现在网上成熟的车牌识别方法很多,我参考了几篇博文的方法,结合自己的理解写了一个简单的识别demo。

参考博文:http://blog.csdn.net/heihei723/article/details/668492             (这篇给了一个定位的实现方案,所以定位的算法用他的了)

    http://blog.csdn.net/sparrowfc/article/details/8193736           (这篇思路写的很清晰,所以我的大体思路也学他的了)

                    http://blog.csdn.net/maotoula/article/details/7680716            (这篇提供了另一种识别思路,写的也很好,很好理解)

其他也有很多博文写的很好,我就不贴出来了,下面简单介绍下定位和识别流程(由于前面的参考博文写的非常详细了,我就稍微写下流程)

一、开发环境搭建

我们要实现win7平台下基于qt5.1.1,opencv2.4.7的车牌定位切割识别,首先要先搭建环境,环境搭建可以参考我半个月前发的博文:

http://blog.csdn.net/jiebaoabcabc/article/details/17097765

二、图像预处理

由于拍摄下来的图片包含了很多无关信息,需要为车牌定位做一下预处理操作,如灰度化,锐化,二值化

三、车牌定位

我们要识别的图片一般都不仅仅只包含了车牌的信息,还有很多周围环境的信息,所以需要将我们关心的车牌定位出来,去除周围环境这些对我们识别车牌字符无关的信息,这里就需要一种车牌定位和图片截取的算法了。

opencv没有直接提供这样的算法,但是我们可以通过使用opencv提供的方法进行预处理。车牌在图像中一般被认为是长方形,由于图像摄取角度不同也可能是四边形,opencv中有一个搜索图片中矩形的一个算法,我们只要稍微修改一下就可以实现定位车牌。我们使用canny算法进行边缘检测,然后二值化,接着用cvFindContours搜索轮廓,最后从找到的轮廓中根据角点的个数,角的度数和轮廓大小确定,矩形位置。


四、车牌切割

找到我们希望得到的车牌位置,接下来就是把车牌切割下来了了,这里用了cvSetImageROI设置感兴趣矩形区域,这里只要提取出划线时候的四个矩形的坐标点就可以截取车牌了。(这里需要注意cvSetImageROI需要的是感兴趣矩形区域的左上角坐标,区域witch与height,所以需要从划线时定位的四个点里筛选出左上角坐标和右下角坐标)。

五、车牌图片预处理

车牌图片是从原图中切出来的,所以还需要进行一次图片的预处理,包括灰度化,锐化,二值化。处理好后,车牌的边框也是不需要的信息,需要用投影切割的方法将其切割掉(投影切割需要车牌是正面截取的,切割的阈值也需要注意),然后将车牌图片进行归一化,方便后面处理。

六、车牌字符切割

我的字符切割使用的是按比例切割,这种方法是最简单的,但也是效果最差的,所以这部分可以改进(这里我其实可以切割好后再进行投影切割,然后归一化,我想这样应该有助于后面的识别)。

七、车牌字符识别

这反面需要了解我国车牌的一些知识,识别方面我用的是切割下来的图片与模版逐点匹配,取最高成功率的那个模版对应的字符作为结果,这也是最简单的方案,效果很依赖与前面的车牌预处理和字符切割,所以这个方案也需要改进。

这样一个简单的车牌识别就结束了。由于这个项目不是我一个人的东西,也有别人的劳动成果,所以不能把整个工程上传,所以我把我的项目里的测试工程放到网上给大家参考下,应该对一些人有帮助。

  车牌定位demo:http://download.csdn.net/detail/jiebaoabcabc/6721157

车牌识别demo:http://download.csdn.net/detail/jiebaoabcabc/6721563

总结:培训虽然结束了,但是我们的学习将会继续,我们将会根据我们的不足,去学习知识,去学习以后的生活之道,也非常感谢学校提供的这次宝贵机会,让我们获益匪浅。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值