基于MATLAB的字符识别研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的字符识别研究

汽车牌照识别程序的设计

摘要:本次课程设计的目的是通过对基于MATLAB的字符识别的研究,以汽车牌照识别的设计为实例,详细介绍字符识别的相关原理。整个汽车牌照识别的过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析,处理。寻找出对于具体的汽车牌照识别过程的最好的方法。

关键词:MATLAB 字符识别车牌识别神经网络图像处理

引言

在MATLAB的字符识别研究中,汽车牌照的识别是最经典的样例,因为车辆牌照识别系统(License Plate Recognition System,简称LPRS)是建设智能交通系统不可或缺的部分。基于 MATLAB 图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用 MATLAB软件编程来实现每一个部分处理工程,最后识别出汽车牌照。

一、 MATLAB及其图像处理工具概述

MATLAB 是 MATrix LABoratory (矩阵实验室)的缩写,是 Math Works 公司开发的一种功能强效率高简单易学的数学软件。MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP、*.JPG、 *.JPEG、 *.GIF、 *.TIF 、*.TIFF、 *.PNG 、*.PCX、 *.XWD、 *.HDF、*.ICO 、*.CUR 等。MATLAB 7.X 提供了20 多类的图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按其功能可分为:图像显示、图像文件 I/O、图像算术运算、几何变换、图像登记、像素值与统计图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作色彩空间变换图像类型与类型转换。MATLAB 还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。本文将给出 MATLAB 的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

二、基于 MATLAB图像处理的汽车牌照识别系统

1.系统组成

基于MATLAB图像处理的汽车牌照识别系统主要包括车牌定位字符车牌分割和车牌字符识别三个关键环节其识别流程图如图 1所示。

图1 识别流程图

其中,

(1)原始图像:由数码相机或其它扫描装置拍摄到的图像;

(2)图像预处理:对动态采集到的图像进行滤波、边界增强等处理以克服图像干扰;

(3)车牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽

高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;

(4)字符分割:利用投影检测的字符定位分割方法得到单个的字符;

(5)字符数据库:为第6步的字符识别建立字符模板数据库;

(6)字符识别:通过基于模板匹配的OCR算法或基于人工神经网络的OCR算法,通过特征对比或训练

识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。

2.图像预处理

图像在形成传输或变换过程中,受多种因素的影响,如:光学系统失真、系统噪声、曝光不足或过量、相对运动等,往往会与原始景物之间或图像与原始图像之间产生了某种差异,这种差异称为降质或退化。因此在图像处理之前必须进行预处理,包括去除噪音、边界增强、增加亮度等等。

输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。

具体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。采用25X25的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。再进行形态学滤波去除其它区域。

I=imread('CAR/0.jpg'); %读取图片

I1=rgb2gray(I); %转化为灰度图像

I2=edge(I1,'robert',0.09,'both'); %采用robert算子进行边缘检测

se=[1;1;1]; %线型结构元素

I3=imerode(I2,se); %腐蚀图像

se=strel('rectangle',[25,25]); %矩形结构元素

I4=imclose(I3,se); %图像聚类、填充图像

I5=bwareaopen(I4,2000); %去除聚团灰度值小于2000的部分

通过对比原始图片,我们可以发现形态滤波后的图像已经很接近正确的车牌位置了,因此后期处理将通过这张图来找出车牌位置。

3.车牌定位

观察经过预处理后得到的图像发现车牌位置有明显的矩形有明显的矩形图样,通过对矩形区域的定位即可获得具体的车牌位置。

(1)车牌的行起始和终止位置的确定

[y,x,]=size(I5);

I6=double(I5);

%绘制行曲线图

Y1=zeros(y,1);

for i=1:y

for j=1:x

if(I6(i,j,1)==1)

Y1(i,1)= Y1(i,1)+1;

end

end

end

figure();

subplot(1,3,1);

plot(0:y-1,Y1),title('行像素灰度值累计'),xlabel('行值'),ylabel('像素和');

[temp, MaxY]=max(Y1);

PY1=MaxY;

while ((Y1(PY1,1)>=80)&&(PY1>1))

PY1=PY1-7;

end

PY2=MaxY;

while ((Y1(PY2,1)>=80)&&(PY2

PY2=PY2+7;

end

(2)车牌的列起始位置和终止位置的确定

%绘制列曲线图

X1=zeros(1,x);

for j=1:x

for i=PY1:PY2

if(I6(i,j,1)==1)

X1(1,j)= X1(1,j)+1;

end

相关文档
最新文档