纵使汽车车牌识别的方法有很多种,这里只简单介绍一种较为简单和准确的方法。
关键的一步是定位到车牌,车牌和汽车背景不同的是它们的纹理有很大的区别,大多数的汽车车身和背景的纹理为横向纹理,而车牌字符的是竖向纹理,关于车牌定位有以下重要的几步:
1.预处理
为了进行一些滤波和梯度增强的处理,以达到滤除噪声和垂直方向上的增强。
2.垂直方向边缘检测并且二值化的处理
使用效率较高的Sobel边缘检测算子对图像进行垂直边缘检测,通过字符的竖向纹理特征检测到汽车车牌字符,对得到的边缘图像进行二值化,排除一些噪声,并增强边缘字符。
3.形态学变换
汽车图像还存在一些竖向的纹理,我们需要排除这些干扰信息,并且把临近的字符边缘连通起来,这一阶段的处理主要使用了形态学的操作,闭合运算和开启运算。
4.筛选
大多数的图像经过形态学变换后可以达到一个较为满意的效果,但是由于图像背景本身存在一些特殊的纹理,也可能留下一些没有滤除的边缘,此时我们就需要进行聚类和筛选,选取一个标准来判断连通域,再根据车牌的形状大小来判断是否为车牌区。
具体的操作如下
1.车牌提取
首先进行灰度化
CvCvtColor (image,grayScale,CV_BGR2GRAY);
2.竖向边缘检测
车牌上的数字都有很锐利的边缘,这些边缘大多都是纵向的,因此可以通过这;一步来去除图像上的无用的信息。
sobel=cvCreateImage(cvG