李纪娴、蔡昕晨 、李元、 胡安正* (湖北文理学院物理与电子工程学院 湖北 襄阳 441053)
现如今汽车工业飞速发展,汽车保有量不断增加,传统的车辆管理方式已不能适应当今的现状,新的管理方式应运而生。本文通过对图像进行采集和处理,完成车牌号的自动识别,可以在现实生活中得到一定程度的应用,使车辆的管理上升到一个新的高度。
车牌号识别包括图1所示过程,其中图片预处理部分包括高斯模糊,灰度化,Canny算法等,预处理完成后对字符进行分割,提取出每一个字符的特征,生成特征矢量或特征矩阵,再将其与样本库进行对比,查看相似度大小。
为了方便计算将彩色图像处理成灰度图像,即将图片像素值R=G=B,图2所示。在Opencv中需要执行以下操作:
void cv::tColor(inputArray src,
outputArray dst,
int code,
int dstCn=0 )
图1 图像处理过程框图
车牌图像处理利用高斯模糊将图片平滑化,去除图像噪声,减少对后续处理的影响。高斯模糊就是将每一个像素都取周边像素的平均值,当所取范围越大时,模糊效果越明显,图3中右图就是以左图为基础进行高斯模糊处理的模型图,图4为实际处理效果图。
图2 灰度化效果图
图3 高斯模糊效果模型
图4 高斯模糊效果图
Canny边缘检测是从不同视觉对象中提取有用的结构信息并大大减少要处理的数据量的一种技术,目前已广泛应用于各种计算机视觉系统。Canny边缘检测算法主要分为以下步骤:原始图像灰度化、高斯滤波、用一阶偏导的有限差分来计算梯度的幅值和方向、对梯度幅值进行非极大值抑制和双阈值算法检测和连接边缘,使图片的信息更为突出。图5为图片处理后的效果图。
在Opencv中需要执行以下操作:
void Canny( InputArray image,
OutputArray edges,
double threshold1,
double threshold2,
int apertureSize = 3,
bool L2gradient = false );
图5 Canny边缘检测运算效果
为精确识别车牌号需去除图片中冗余部分,由于车牌所在区域的像素点的像素值跳变相对明显,车牌大小固定,长宽比例固定,可通过检测图片像素点的像素值跳变的频繁程度来缩小车牌所在区域,并通过相应阈值的设定来进行对比,确定车牌的区域。
将图片从左到右进行扫描,如图6,当扫描到空隙较大时就进行分割,分割成单独的字符图片后利
于字符的识别。
图6 车牌号图示
车牌号识别的最终目的是将图像中的字符转化成文本字符。根据我国车牌牌照标准,车牌第一位为汉字,第二位为大写英文字母,第三位到第七位为英文大写字母或数字。因此在车牌字符识别系统中,分成三块进行识别,即:汉字、字母、数字。以数字0为例最终特征提取如图7,左图为分割后的单个字符,右图为对应字符的矩阵模型,再将实际得到的特征矩阵与样本库中样本进行对比即可。
图7 矩阵模型
本文主要是针对汽车车牌识别的图像处理技术的研究,即对获取的图像进行预处理、车牌定位、字符分割和字符识别等,并给出实验的实现方法和实验结果图。通过实验表明,该系统满足设计要求且具有实用性高、准确率高、识别速度快等特点。
[1] 王海菊,谭常玉,王坤林等,自适应高斯滤波图像去噪算法[J].福建电脑,2017年11期
[2] Robert Laganiere著,张静译OpenCV 2 计算机视觉编程手册[M].北京,科学出版社,2013.7
[3]秦小文,温志芳,乔维维,基于OpenCV的图像处理[J].电子测试,2011年07期