期末课程报告:数字图像中车牌识别的matlab实现

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

期末课程报告:数字图像中车牌识别的matlab实现

数字图像处理期末课程报告

题目:车牌识别的matlab实现

题目类型:软件型

学院信息工程与自动化学院

专业:计算机科学与技术

年级: XXXX 学号: XXXXXXX

学生姓名: xxx

指导教师: xx

日期: 2012-6-8

目录

摘要: (4)

关键词: (4)

实验工具: (4)

车辆牌照识别流程: (4)

实验内容及步骤 (5)

1.图像预处理: (5)

2.车牌定位——车牌起始位置和终止位置 (8)

3.图片二值化 (9)

4.列方向像素点灰度值累计 (11)

5.字符分割: (12)

6.建立字符模板数据库 (14)

7.归一化训练 (15)

结果分析: (22)

摘要:

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

关键词:

MATLAB 字符识别车牌识别神经网络图像处理

实验工具:

MATLAB 7.8(R2009a)。

车辆牌照识别流程:

基于 MATLAB图像处理的汽车牌照识别,主要包括车牌定位、字符车牌分割、和车牌字符识别三个关键环节。

流程图如下:

原始图图像预车牌定

字符识

字符分

字符数

其中,

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

像;(本实验图片由数码相机获得)

(2)图像预处理:对动态采集到的图像进行灰度处理、边

缘检测、腐蚀、膨胀、滤波、等处理排除图像干扰;

(3)车牌定位:计算边缘图像的投影面积,寻找峰谷点,

大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;

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

个的字符;

(5)字符数据库:构造训练样本数据库,为第6步的字符

识别建立字符模板数据库;

(6)字符识别:通过基于模板匹配的OCR算法或基于人工

神经网络的OCR算法,通过特征对比或训练识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。

实验内容及步骤

1.图像预处理:

预处理源代码:

>> I=imread('h:\tuku\car1.jpg');%读取图像

figure(); subplot(3,2,1),imshow(I), title('原始图像');

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

subplot(3,2,2),imshow(I1),title('灰度图像');

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

subplot(3,2,3),imshow(I2),title('边缘检测后图像');

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

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

subplot(3,2,4),imshow(I3),title('腐蚀后边缘图像');

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

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

subplot(3,2,5),imshow(I4),title('填充后图像');

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

subplot(3,2,6),imshow(I5),title('形态滤波后图像');

预处理结果截图:

行列方向像素值累计值:

源代码:

[y,x,z]=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

[temp MaxY]=max(Y1);

figure();

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

运行截图:

2.车牌定位——车牌起始位置和终止位置

PY1=MaxY;

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

PY1=PY1-1;

end

PY2=MaxY;

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

PY2=PY2+1;

end

IY=I(PY1:PY2,:,:);

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

end

end

subplot(3,2,2),plot(0:x-1,X1),title('列方向像素点灰度值累计和'),xlabel('列值'),ylabel('像数');

3.图片二值化

代码:

if isrgb(DW)

I1 = rgb2gray(DW); %将RGB图像转化为灰度图像else I1=I; end

g_max=double(max(max(I1)));

相关文档
最新文档