从零使用OpenCV快速实现简单车牌识别系统

本文介绍了使用OpenCV快速构建简单车牌识别系统的过程,包括配置环境、基本算法和改进。主要步骤包括车牌提取、字符提取和字符匹配。在车牌提取中,涉及灰度化、边缘检测、二值化处理和形态学操作。字符提取则通过类似步骤,但需去除边框和铆钉。字符匹配采用逐像素点匹配方法。文章还提出了一些改进方案,如图像旋转处理和二值化前的锐化处理。
摘要由CSDN通过智能技术生成

从零使用OpenCV快速实现简单车牌识别系统

这篇文章献给所有第一次听说车牌识别ANPR但需要短时间实现的苦逼同学们。

 

最近的小学期实训做的是一个车牌识别系统,说实话真不知道学校怎么想的,虽然说图像处理也算的上是数字媒体很重要的一块分支了,但咱这几年学的全是图形渲染啊。图形与图像虽然只差了一个字,但内容真是差了十万八千里了(当然这话是夸张了,事实上在使用shader进行特效渲染的最后一步往往都是在做图像处理,如Bloom, Outline, Field Depth等,但这些也只是用到了图像处理中很基础的一部分)。

小学期不到10天的时间要从零搞出个车牌识别系统,更别说我们所有组员全都有实习,老师大撒把,发了需求直接不管。当时本来还觉得这种应用广泛的东西网上肯定有现成的例子,随便改改就好,结果搜了半天,最令我崩溃的一句话就是:“这东西你要真做出来了就卖钱去吧”。擦,算了,求人不如求自己,最终在OpenCV的帮助下我看了两天资料,写了两天程序,居然就实现了,看到从原始图片中抠出车牌,再从车牌中抠出数字,再匹配出结果(这步是我同学做的),我自己都觉得神奇啊!虽然肯定是买不了钱,但还是很激动啊~~

废话不多说了,以后和我一样做这个实训项目的同学们可有福了,接下来就详细讲讲如何简单实现ANPR(Automatic Number Plate Recognition)吧。

 

 

配置环境

 

我使用的是OpenCV 2.3.1和VS2010,下载与配置方法在opencv的中国官网www.opencv.org.cn上都有详细介绍。像这种开源库最麻烦的就是环境配置了,什么makefile这种东西我看着就头大,当然对于我这种菜鸟人家提供了CMake来帮你进行傻瓜式的一键配置,不过这对于我来说还是麻烦,毕竟还要再装个程序。幸运的是我下载的是SuperPack版本,也就是说在opencv/build目录下已经有人家编译好的全部语言、开发平台的lib, dll以及头文件。虽然很大,但是下下来就能用^_^,咱的追求就是简单,更简单!

建立工程后要做的就是在工程属性的C++目录中将相应的include文件夹,lib文件夹配置进去,另外还要链接上你需要使用的库。

看网上一片教程说在属性——链接器——输入中配置附加依赖项:opencv_calib3d231d.lib; opencv_contrib231d.lib; opencv_core231d.lib;opencv_features2d231d.lib; opencv_flann231d.lib; opencv_gpu231d.lib;opencv_highgui231d.lib; opencv_imgproc231d.lib; opencv_legacy231d.lib;opencv_ml231d.lib; opencv_objdetect231d.lib; opencv_ts231d.lib;opencv_video231d.lib。

NND,这么多哪儿记得住啊,下次新建一个工程还得网上找这篇文章拷贝粘贴么?当然不用,只少在车牌识别系统中,我们所需要的只有三个库,而且在VS中我们可以使用预编译指令连接这些库,这样在你将工程拷贝给同学的时候就不用再担心环境配置的问题了。

#pragma comment(lib, “opencv_core231d.lib”)

#pragma comment(lib, “opencv_imgproc231d.lib”)

#pragma comment(lib, “opencv_highgui231d.lib”)

core是opencv的核心库,一些主要的数据结构都在这里定义,imgproc顾名思义包含了主要的图像处理函数,highgui是一个简单的显示框架,帮助快速创建窗口显示图像等,就好像opengl中的glut。如果使用MFC框架进行显示的话需要额外添加一个类CvvImage,具体情况网上随便一搜就有,不废话了。

 

 

基本算法

 </

评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值