1.车牌上都会有一个点,全世界所有车辆都有日本元素,上面有一个点,使用的稀土材料,可以反射红外线。
/////////////////////////////////////////////车牌号码识别//////////////////////////////////////////
1: 图像处理,查找车牌号码的轮廓
2: 支持向量机svm 机器学习车牌特征
3: svm 分类车牌
VS 使用Opencv
环境配置 windows64 + vs2015 + OpenCV 3.3.0
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.0/opencv-3.3.0-vc14.exe/download
下载windows 的OpenCV 按装包,进行安装,会有一个解压文件,文件中包含了下面的需要配置的所有的信息
F:\OpenSource\opencvWin\opencv\
1: 右击项目解决方案- 属性-配置属性-VC++ 目录 -包含目录,添加:
3.1
E:\NDK\Opencv\opencv\build\include
E:\NDK\Opencv\opencv\build\include\opencv
E:\NDK\Opencv\opencv\build\include\opencv2
3.0
E:\Opencv\opencv\build\include
E:\Opencv\opencv\build\include\opencv
E:\Opencv\opencv\build\include\opencv2
2: C++目录 - 库目录添加:
3.1
E:\NDK\Opencv\opencv\build\x64\vc14\lib
3.0
E:\Opencv\opencv\build\x64\vc14\lib
3:链接器-->输入,编辑附加依赖项
3.1:
E:\NDK\Opencv\opencv\build\x64\vc14\lib\opencv_world331d.lib
3.0:
E:\Opencv\opencv\build\x64\vc14\lib\opencv_world330d.lib
E:\Opencv\opencv\build\x64\vc14\lib\opencv_world330d.lib
4:将工程设置为X64 管理器
1: 图像处理,查找车牌号码的轮廓:
首先看下原图
第一步就要找出可能是车牌的轮廓:
可以看下要达到的效果图:
下面就先讲讲如何处理得到我们想要得到的图像呢:
第一步就是高斯处理,就是模糊,降噪,如下就是效果
下一步就是将图像灰度处理,不需要彩色图
接下来就是边缘检测滤波,便于区分车牌,来看下效果图,说实话你不仔细看,发现不了下面图片你能可以看到车牌
上面图看不到效果,那就给你看下先缩放再去绝对值的效果是不是明朗了许多
下一步对车牌区域进行加权,看下面的图不是干就更亮了
下一步就是对图像就行二值化,可以将图像的像素点要么黑要么白,可以发现车子的轮廓更清晰了
再接下来就对图像进行膨胀再腐蚀,把白色的区域连接或者扩大,任何区域如果小于结构元素的大小的都会被消除,对于结构大小,由于中国馆车牌,比如湘A 12345 有断层的所以这个width的值要把控得当,过小就断层,过大就会连接不必要的区域,可以看下下面的效果还是比较得当的
图像处理到这里就告一段落了
可以得到如下的图像
可以看到这个过程可能会出现一些小的不不要的轮廓,所以需要通过一定的方法过滤小的轮廓,比如面积要
下面需要可虑到可能拍到的车牌是一定是正的所以要旋转下:
类似如下两个照片的效果:
是不是感觉很可爱 萌萌哒
2.下面就开始第二步了,开始从找到的轮廓中,哪个最像车牌,使用机器学习,使用SVM(简称分类器)
先介绍下SVM 可以看下一个网址。
// ///////////////////////////////////////////SVM/////////////////
关于分类型的训练,可以看看下面这个博客
http://blog.csdn.net/chaipp0607/article/details/68067098
http://www.csie.ntu.edu.tw/~cjlin/lib台湾大学的一个网址
// 图像梯度
// HOG 特征: 是一个向量保存的图片的梯度(图片在微观层面的变化率)
最终可以看到如下
识别效果图,是不是感觉很吊:想了解更多请联系qq376596444