1、#*基于 Matlab 的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。并用 MATLAB 软件编程来实现每一个部分,最后识别出汽车车牌。一、设计原理 车 辆 车 牌 识 别 系 统 的 基 本 工 作 原 理 为 : 将 摄 像 头 拍 摄 到 的 包 含 车 辆 车 牌 的 图像 通 过 视 频 卡 输 入 到 计 算 机 中 进 行 预 处 理 , 再 由 检 索 模 块 对 车 牌 进 行 搜 索 、 检 测 、定 位 , 并 分 割 出 包 含 车 牌 字
2、符 的 矩 形 区 域 , 然 后 对 车 牌 字 符 进 行 二 值 化 并 将 其 分 割为 单 个 字 符 , 然 后 输 入 JPEG 或 BMP格式 的 数 字 , 输 出 则 为 车 牌 号 码 的 数 字 。 车 牌自 动 识 别 是 一 项 利 用 车 辆 的 动 态 视 频 或 静 态 图 像 进 行 车 牌 号 码 、 车 牌 颜 色 自 动 识别 的 模 式 识 别 技 术 。 其 硬 件 基 础 一 般 包 括 触 发 设 备 、 摄 像 设 备 、 照 明 设 备 、 图 像采 集 设 备 、 识 别 车 牌 号 码 的 处 理 机 等 , 其 软 件 核 心 包 括
3、 车 牌 定 位 算 法 、 车 牌 字 符分 割 算 法 和 光 学 字 符 识 别 算 法 等 。 某 些 车 牌 识 别 系 统 还 具 有 通 过 视 频 图 像 判 断 车辆 驶 入 视 野 的 功 能 称 之 为 视 频 车 辆 检 测 。 一 个 完 整 的 车 牌 识 别 系 统 应 包 括 车 辆 检测 、 图 像 采 集 、 车 牌 识 别 等 几 部 分 。 当 车 辆 检 测 部 分 检 测 到 车 辆 到 达 时 触 发 图 像采 集 单 元 , 采 集 当 前 的 视 频 图 像 。 车 牌 识 别 单 元 对 图 像 进 行 处 理 , 定 位 出 车 牌 位置
4、, 再 将 车 牌 中 的 字 符 分 割 出 来 进 行 识 别 , 然 后 组 成 车 牌 号 码 输 出 。二、设计步骤总 体 步 骤 为 :#*车辆图像采集图像预处理车牌定位字符分割字符定位输出结果基本的步骤:a.车 牌 定位,定位图片中的车牌位置;b.车 牌 字符分割,把车牌中的字符分割出来;c.车 牌 字符识别,把分割好的字符进行识别,最终组成车牌号码。车 牌 识别过程中,车 牌 颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车 牌 识别互相配合、互相验证。(1)车 牌 定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。
5、首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。流程图 :(2)车 牌 字符分割 :完成车牌区域的定位后,再将车牌区域分割成单个字符,然后进行识别。字符分割一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足车牌的字符书写导入原始图像图像预处理增强效果图像边缘提取 车牌定位 对图像开闭运算#*格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。流程图:(3
6、)车 牌 字符识别 :字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。实际应用中,车 牌 识别系统的识别率与车 牌 质量和拍摄质量密切相关。车牌质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、车牌被遮挡、车牌倾斜、高亮反光、多车牌、假车牌等等;实际拍摄过程也
7、会受到环境亮度、拍摄亮度、车辆速度等等因素的影响。这些影响因素不同程度上降低了车牌识别的识别率,也正是车牌识别系统的困难和挑战所在。为了提高识别率,除了不断的完善识别算法,还应该想办法克服各种光照条件,使采集到的图像最利于识别。流程图:三 各模块的实现:3.1 输入待处理的原始图像:按左右宽度切割出字符计算水平投影进行车牌水平校正去掉车牌的框架分析垂直投影找到每个字符中心位置切割出的字符送入库中字符依次分析显示误差最小的图片名字与数据库的图片相减分析之差最小的图片是哪张切割出的字符送入库中与数据库的图片相减分析之差最小的图片是哪张字符依次分析显示误差最小的图片名字#*clear ;close
8、all;%Step1 获取图像 装入待处理彩色图像并显示原始图像Scolor = imread(3.jpg);%imread 函数读取图像文件图 3.1 原始图像3.2 图像的灰度化:彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray 转换成灰度图fi
9、gure,imshow(Sgray),title(原始黑白图像);#*图 3.2 原始黑白图像3.3 对原始图像进行开操作得到图像背景图像:s=strel(disk,13);%strei 函数Bgray=imopen(Sgray,s);%打开 sgray s 图像figure,imshow(Bgray);title(背景图像);%输出背景图像图 3.3 背景图像3.4 灰度图像与背景图像作减法,对图像进行增强处理:#*Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title(增强黑白图像);%输出黑白图像图 3.4 黑白图像3
10、.5 取得最佳阈值,将图像二值化:二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为 0 或 255,否则灰度值设置为 255 或 0。fmax1=double(max(max(Egray);%egray 的最大
11、值并输出双精度型fmin1=double(min(min(Egray);%egray 的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值bw22=im2bw(Egray,level);%转换图像为二进制图像bw2=double(bw22);figure,imshow(bw2);title(图像二值化);%得到二值图像#*图 3.5 二值图像3.6 边缘检测:两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比
12、在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。grd=edge(bw2,canny)%用 canny 算子识别强度图像中的边界figure,i
13、mshow(grd);title(图像边缘提取);%输出图像边缘#*图 3.6 像边缘提取3.7 对得到图像作开操作进行滤波:数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。对图像做
14、了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。bg1=imclose(grd,strel(rectangle,5,19);%取矩形框的闭运算figure,imshow(bg1);title(图像闭运算5,19);%输出闭运算的图像bg3=imopen(bg1,strel(rectangle,5,19);%取矩形框的开运算figure,imshow(bg3);title(图像开运算5,19);%输出开运算的图像bg2=imopen(bg3,strel(rectangle,19,1);%取矩形框的开运算figure,i
15、mshow(bg2);title(图像开运算19,1);%输出开运算的图像#*图 3.7.1 闭运算的图像 图 3.7.2 开运算的图像图 3.7.3 开运算的图像3.8 对二值图像进行区域提取,并计算区域特征参数。进行区域特征参数比较,提取车牌区域:#*a.对图像每个区域进行标记,然后计算每个区域的图像特征参数:区域中心位置、最小包含矩形、面积。L,num = bwlabel(bg2,8);%标注二进制图像中已连接的部分Feastats = imfeature(L,basic);%计算图像区域的特征尺寸Area=Feastats.Area;%区域面积BoundingBox=Feastats.BoundingBox;%x y width height车牌的框架大小RGB = label2rgb(L, spring, k, shuffle); %标志图像向 RGB 图像转换figure,imshow(RGB);title(图像彩色标记);%输出框架的彩色图像图 3.8.1 彩色图像b. 计算出包含所标记的区域的最小宽和高,并根据先验知识,比较谁的宽高比更接近实际车牌宽高比,将更接近的提取并显示出来。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。