车牌识别的matlab程序(程序-讲解-模板)

合集下载

(完整版)基于matlab的车牌识别(含子程序)

(完整版)基于matlab的车牌识别(含子程序)

基于matlab的车牌识别系统一、对车辆图像进行预处理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg', 'JPEG 文件(*.jpg)'});if(filename == 0), return, endglobal FILENAME %定义全局变量FILENAME = [pathname filename];I=imread(FILENAME);figure(1),imshow(I);title('原图像');%将车牌的原图显示出来结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图像');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');%绘制灰度图的直方图结果如下所示:3. 用roberts算子进行边缘检测:I2=edge(I1,'roberts',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测figure(3),imshow(I2);title('roberts 算子边缘检测图像');结果如下:4.图像实施腐蚀操作:se=[1;1;1];I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title('腐蚀后图像');5.平滑图像se=strel('rectangle',[25,25]);%构造结构元素以正方形构造一个seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title('平滑图像');结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);% 去除聚团灰度值小于2000的部分figure(6),imshow(I5);title('从对象中移除小的对象');结果如下所示:二、车牌定位[y,x,z]=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic表示计时的开始,toc表示计时的结束Blue_y=zeros(y,1);%产生一个y*1的零阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 %则Blue_y(i,1)的值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定%temp为向量white_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%x方向车牌区域确定%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title('定位裁剪后的车牌彩色图像');的车牌区域如下所示:三、字符分割及处理1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。

matlab车牌识别课程设计

matlab车牌识别课程设计

matlab车牌识别课程设计一、课程目标知识目标:1. 学生将理解车牌识别技术的原理和实现流程,掌握使用MATLAB进行图像处理的基本方法。

2. 学生将学会运用MATLAB内置函数进行车牌定位、字符分割和识别,并了解相关算法。

3. 学生将掌握利用MATLAB进行车牌识别系统的设计与实现,提高解决实际问题的能力。

技能目标:1. 学生能够运用MATLAB软件进行图像的读取、显示、预处理等操作。

2. 学生能够独立完成车牌的定位、分割和识别,具备一定的编程实践能力。

3. 学生能够通过本课程的学习,将理论知识与实际应用相结合,提高解决复杂问题的能力。

情感态度价值观目标:1. 学生将培养对图像处理技术的兴趣,激发探究精神,提高学习积极性。

2. 学生将形成严谨的科学态度,注重团队协作,善于沟通交流。

3. 学生将认识到车牌识别技术在现实生活中的应用价值,增强社会责任感和创新意识。

本课程针对高年级学生,结合图像处理、模式识别等学科知识,以MATLAB为工具,培养学生的编程实践能力和解决实际问题的能力。

课程目标具体、可衡量,旨在让学生在学习过程中充分了解车牌识别技术的原理和应用,为后续相关领域的学习和研究打下坚实基础。

二、教学内容1. 车牌识别技术原理概述:介绍车牌识别技术的发展背景、系统组成和基本流程,使学生了解整个技术的框架。

2. MATLAB图像处理基础:讲解MATLAB中图像的读取、显示、存储等基本操作,以及图像预处理方法,包括灰度化、二值化、滤波等。

3. 车牌定位:介绍常见的车牌定位算法,如边缘检测、形态学处理等,并运用MATLAB实现车牌定位。

4. 车牌字符分割:讲解车牌字符分割的常用方法,如投影分割、连通域分析等,以及MATLAB实现方法。

5. 车牌字符识别:介绍基于模板匹配、神经网络等算法的字符识别方法,并运用MATLAB实现车牌字符的识别。

6. 车牌识别系统设计与实现:结合前面所学内容,设计并实现一个简单的车牌识别系统,包括模块划分、算法选择和程序编写。

基于matlab图像处理的车牌识别系统_毕业设计论文

基于matlab图像处理的车牌识别系统_毕业设计论文

基于matlab图像处理的车牌识别系统目录摘要 (1)第一章绪论 (3)1.1研究背景及意义 (3)1.2车牌系统简介 (4)1.2.1国内外现状 (5)1.2.2车牌识别难点 (6)1.3 MATLAB的简介 (7)1.3 MATLAB语言特点 (8)第二章图像预处理 (8)2.1 图像采集 (8)2.2 图像预处理 (9)2.2.1 图像灰度化 (9)2.2.2 图像增强 (11)第三章车牌定位与分割 (12)3.1 车牌定位 (13)3.2 车牌分割 (17)3.3 车牌进一步处理 (17)第四章字符分割和归一化 (18)4.1 字符分割 (19)4.2 字符归一化 (19)4.3 字符识别 (20)第五章汽车号牌识别系统实现与分析 (22)5.1 系统实现 (22)5.2 系统分析 (25)总结 (28)参考文献 (29)致谢 (30)摘要随着二十一世纪到来,经济快速发展和人们生活水平显著提高,汽车逐渐成为家庭的主要交通工具。

汽车的产量快速增多,车辆流动也变得越来越频繁,因此给交通带来了严重问题,如交通堵塞、交通事故等,智能交通系统(Intelligent Transportation System)的产生就是为了从根本上解决交通问题。

在智能交通系统中车牌识别技术占有重要位置,车牌识别技术的推广普及必将对加强道路管理、城市交通事故、违章停车、处理车辆被盗案件、保障社会稳定等方面产生重大而深远的影响。

该设计主要研究基于MATLAB软件的汽车号牌设别系统设计,系统主要包括图像采集、图像预处理、车牌定位、字符分割、字符识别五大核心部分。

系统的图像预处理模块是将图像经过图像灰度化、图像增强、边缘提取、二值化等操作,转换成便于车牌定位的二值化图像;利用车牌的边缘、形状等特征,再结合Roberts 算子边缘检测、数字图像、形态学等技术对车牌进行定位;字符的分割采用的方法是将二值化后的车牌部分进行寻找连续有文字的块,若长度大于设定的阈值则切割,从而完成字符的分割;字符识别运用模板匹配算法完成。

matlab车牌号码识别程序代码资料

matlab车牌号码识别程序代码资料

( 4)字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析 提取,对分割出的字符图像进行识别给出文本形式的车牌号码。
4 汽车牌照识别系统的 matlab实现 4.1 图像预处理与车牌定位
输入的彩色图像包含大量颜色信息, 会占用较多的存储空间, 且处理时也会 降低系统的执行速度, 因此对图像进行识别等处理时, 常将彩色图像转换为灰度 图像,以加快处理速度。对图像进行灰度化处理、边缘提取、再利用形态学方法 对车牌进行定位。 具体步骤如下: 首先对图像进行灰度转换, 二值化处理然后采 用 4X1的结构元素对图像进行腐蚀,去除图像的噪声。采用 25X25的结构元素, 对图像进行闭合应算使车牌所在的区域形成连通。 在进行形态学滤波去除其它区 域。
Px0=Px1; End
4.3 车牌字符识别
字符识别方法主要有基于模板匹配算法和基于人工神经网络算法。基于模 板匹配算法是首先将分割后的字符二值化 ,并将其尺寸缩放为字符数据库中模板 的大小, 然后与所有模板进行匹配, 最后选取最佳匹配作为结果。 建立数字库对 该方法在车牌识别过程中很重要 , 数字库准确才能保证检测出的数据正确。 基于 人工神经元网络的算法有两种, 一种是先对特征提取待识别字符, 然后用所获得 的特征训练神经网络分配器; 另一种是直接将待处理图像输入网络由网络自动实 现特征提取直至识别结果。 在本程序中用基于人工神经元网络识别车牌字符。 在 车牌字符识别部分 , 字符集中包含约 50个汉字 , 26个大写英文字母及 10个阿拉伯 数字。总的字符样本并不太多。
% 4.2 车牌字符分割
% 确定车牌位置后下一步的任务就是进行字符切分分离出车牌号码的全部字 符图像 。
if isrgb(dw)
I1 = rgb2gray(dw);

matlab车牌识别课程设计报告

matlab车牌识别课程设计报告

Matlab程序设计任务书目录一.课程设计目的 (3)二.设计原理 (3)三.详细设计步骤 (3)四. 设计结果及分析 (18)五. 总结 (19)六. 设计体会 (20)七. 参考文献 (21)一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。

通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。

二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。

三、详细设计步骤:v1.0 可编辑可修改1. 提出总体设计方案:牌照号码、颜色识别为了进行牌照识别,需要以下几个基本的步骤: a.牌照定位,定位图片中的牌照位置; b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。

牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。

(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。

流程图:(2)牌照字符分割 :导入原始图像图像预处理增强效果图像边缘提取车牌定位 对图像开闭运算完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。

(完整版)MATLAB车牌识别

(完整版)MATLAB车牌识别

目录1.引言 (2)2.设计概述 (3)2.1车牌识别技术 (3)2.2 车牌识别技术的发展 (3)2.3 车牌识别技术的国内外研究现状 (4)2.4 主要应用领域 (6)3.设计方案 (7)4.车牌识别系统的matlab实现 (8)4.1 图像的读取 (8)4.2 图像预处理 (9)4.2.1灰度变换 (9)4.2.2 图像校正 (10)4.3 牌照分割 (10)4.3.1 图像边缘提取及二值化 (11)4.3.2 BP神经网络 (14)4.4 车牌提取 (15)5.设计结果及分析 (16)5.1程序运行结果 (16)5.2程序结果分析 (17)总结体会 (18)参考文献 (19)附录1 (20)附录2 (28)1.引言伴随着世界各国车辆数量的增加,城市交通状况日益受到人们的重视。

如何有效地进行交通管理,越来越成为各国政府的相关部门所关注的焦点。

针对这一问题,人们运行先进的信息处理技术、导航定位技术、无线通信技术、自动控制技术、图像处理和识别技术及计算机网络技术等科学技术,相继研发了各种交通道路监视管理系统、车辆控制系统及公共交通系统。

这些系统将车辆和道路综合起来进行考虑,运行各种先进的技术解决道路交通的问题,统称为智能交通系统( Intelligent Transportation System,简称ITS)。

ITS 是20世纪90年代兴起的新一代交通运输系统。

它可以加强道路、车辆、驾驶员和管理人员的联系,实现道路交通管理自动化和车辆行驶的智能化,增强交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。

智能交通系统以车辆的自动检测作为信息的来源,因而对车牌照等相关信息的自动采集和处理的一门新的交通信息获取技术——车牌识别(License Plate Recognition ,LPR) 技术逐渐发展起来,成为信息处理技术的一项重要研究课题。

车牌自动识别是智能交通管理系统中的关键技术之一。

车牌识别的matlab程序-(详细注释,并有使用注意点)

车牌识别的matlab程序-(详细注释,并有使用注意点)

附录车牌识别程序clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread('3.jpg');%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图figure,imshow(Sgray),title('原始黑白图像');%Step2 图像预处理对Sgray 原始黑白图像进行开操作得到图像背景s=strel('disk',13);%strel函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title('背景图像');%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像%Step3 取得最佳阈值,将图像二值化fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值bw22=im2bw(Egray,level);%转换图像为二进制图像bw2=double(bw22);%Step4 对得到二值图像作开闭操作进行滤波figure,imshow(bw2);title('图像二值化');%得到二值图像grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界figure,imshow(grd);title('图像边缘提取');%输出图像边缘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,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像%Step5 对二值图像进行区域提取,并计算区域特征参数。

汽车车牌的号码识别

汽车车牌的号码识别

目录1 技术要求 (1)2 基本原理 (1)3 各模块的功能 (2)3.1 图像预处理 (2)3.2 车牌定位 (5)3.3 字符分割和识别 (7)4 调试过程及结论 (10)5 心得体会 (10)6 参考文献 (10)汽车车牌的号码识别1 技术要求用相机拍摄获取彩色汽车车牌的图片,应用MATLAB软件对所拍摄车牌号图片进行相应处理(如,去噪,去除背景提取目标,边缘分割,轮廓提取等)最终从一幅图像中提取车牌中的字母和数字(只能用黑色显示)。

2 基本原理汽车车辆牌照识别系统的基本工作原理为:将摄像头拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。

汽车车辆牌照识别系统的基本工作原理图如图1所示:我们知道输入的彩色图像包含大量颜色信息,会占用计算机较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,通常将彩色图像转换为灰度图像,以加快处理速度。

对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。

具体步骤如下:首先通过MATLAB软件对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。

采用25X25的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。

在进行形态学滤波去除其它区域。

3 各模块的功能图像预处理对汽车图像进行图像转换、图像增强和边缘检测等。

载入车牌图像如代码如下所示:I=imread('car.jpg');%应用imread函数从图形文件中读取命名为car的图像;figure();subplot(3,2,1),imshow(I), title('原始图像');%以“原始图像”为题目将图片显示出来。

结果如图2所示:图-2 原始图像对提取出来的原始图像进行下列处理:转化为灰度图像,采用Robert算子进行边缘检测,腐蚀图像,填充图像,形态滤波。

基于MATLAB的车牌识别系统研究

基于MATLAB的车牌识别系统研究

基于MATLAB的车牌识别系统探究摘要:随着交通的快速进步和车辆数量的增加,车牌识别系统在车辆管理和交通安全方面扮演着重要角色。

本文基于MATLAB平台,探究和设计了一种车牌识别系统,包括车牌图像的得到、预处理、特征提取和识别等关键技术。

试验结果表明,该系统可以有效地检测和识别车牌图像,并具有较高的识别准确率。

1. 引言车牌作为车辆唯一的标识符,在交通管理和公共安全中具有重要意义。

传统的车牌识别方式主要依靠人工进行,效率低下且容易出错。

近年来,随着计算机视觉和模式识别等技术的进步,基于计算机的车牌识别系统得到广泛应用。

本文旨在探究和设计一种基于MATLAB的车牌识别系统,以提高车辆管理和交通安全的效率和准确性。

2. 方法2.1 车牌图像的得到车牌图像的得到是车牌识别系统的第一步,可以通过摄像头或已有的车牌图像数据库进行得到。

本文使用摄像头采集车辆图像,并对图像进行预处理。

2.2 图像预处理图像预处理是车牌识别的基础,目标是消除图像中的噪声和干扰,提高图像的质量。

本文接受灰度化、二值化、去噪等方法对图像进行预处理。

2.3 特征提取特征提取是车牌识别系统的核心技术之一,依据车牌图像的特点提取有效的特征信息。

本文接受图像分割、轮廓提取和统计特征等方法进行特征提取。

2.4 车牌识别车牌识别是车牌识别系统的最终目标,通过对特征进行分类和匹配来实现对车牌的识别。

本文接受模式识别算法和机器进修方法进行车牌识别,并通过试验验证其准确性和可靠性。

3. 试验与结果本文基于MATLAB平台进行试验,接受了大量的车牌图像进行测试和验证。

试验结果表明,所设计的车牌识别系统在车牌图像的得到、预处理、特征提取和识别等方面具有较高的准确性和效率。

识别率达到了90%,满足了车辆管理和交通安全的需求。

4. 谈论与分析通过对试验结果的分析和对比,可以发现该系统在车牌识别的准确性和效率方面相对较好。

然而,该系统还存在一些问题和不足之处,如对光照和遮挡的敏感性,对多种车牌样式的识别能力等。

基于MATLAB平台下的车牌识别系统设计

基于MATLAB平台下的车牌识别系统设计

科技与创新┃Science and Technology &Innovation·20·2020年第14期文章编号:2095-6835(2020)14-0020-03基于MATLAB 平台下的车牌识别系统设计楚天鸿1,唐瑞尹2(1.华北理工大学电气工程学院,河北唐山063210;2.北华航天工业学院电子与控制工程学院,河北廊坊065000)摘要:科技的快速发展使汽车成为现代社会的重要代步工具,促生了新一代的智能交通系统,车牌识别技术作为智能交通的基石,为交通管理提供了技术支撑,使人们的驾车出行更为方便快捷。

将车牌识别与计算机软件相结合,在MATLAB 平台下,运用数字图像处理技术,对采集到的车辆图像进行相关操作,完成了对汽车牌照的定位和字符的分割。

同时,将改进后的模板匹配识别方法运用到字符识别中,使系统正确识别出车牌字符,实现了自动识别汽车牌照的目的。

关键词:车牌识别;MATLAB ;图像处理;模板匹配中图分类号:TP391.41文献标识码:ADOI :10.15913/ki.kjycx.2020.14.006自2013年起,中国汽车保有量逐年递增,2019年中国汽车保有量已经达到2.6亿辆,与2018年相比增长了8.83%。

这足以说明汽车已经成为民众生活中不可或缺的工具,给人们的出行带来方便的同时也给交通带来了巨大压力,建立一个完善的智能交通系统的需求愈发强烈。

计算机相关的科学技术迅猛发展以及现代网络科技的广泛应用,带动智能信息化功能处理技术不断完善,同时为现代汽车管理手段提供了新思路和新方案[1]。

汽车牌照是每辆汽车特有的身份证明,而车牌识别系统也成为了高速路、小区门禁、停车场等场所的必备工具,在交通管制等方面发挥着重要的作用。

车牌识别技术主要包括车牌定位、字符分割、字符识别三个部分[2],通过对采集到的车辆图像进行相关处理就可成功获取车牌号码,完成车牌识别。

本文在MATLAB 软件平台下,设计车牌识别系统,对小型汽车蓝底白字的车牌图像进行相关处理,实现车牌识别功能。

车牌识别的matlab程序(程序-讲解-模板)

车牌识别的matlab程序(程序-讲解-模板)

clcclearclose allI=imread('chepai.jpg');subplot(3,2,1);imshow(I), title('原始图像');I_gray=rgb2gray(I);subplot(3,2,2),imshow(I_gray),title('灰度图像');%====================== 形态学预处理======================I_edge=edge(I_gray,'sobel');subplot(3,2,3),imshow(I_edge),title('边缘检测后图像');se=[1;1;1];I_erode=imerode(I_edge,se);subplot(3,2,4),imshow(I_erode),title('腐蚀后边缘图像');se=strel('rectangle',[25,25]);I_close=imclose(I_erode,se); %图像闭合、填充图像subplot(3,2,5),imshow(I_close),title('填充后图像');I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I_final),title('形态滤波后图像');%========================== 车牌分割============================= I_new=zeros(size(I_final,1),size(I_final,2));location_of_1=[];for i=1:size(I_final,1) %寻找二值图像中白的点的位置for j=1:size(I_final,2)if I_final(i,j)==1;newlocation=[i,j];location_of_1=[location_of_1;newlocation];endendendmini=inf;maxi=0;for i=1:size(location_of_1,1)%寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置temp=location_of_1(i,1)+location_of_1(i,2);if temp<minimini=temp;a=i;endif temp>maximaxi=temp;b=i;endendfirst_point=location_of_1(a,:); %和最小的点为车牌的左上角last_point=location_of_1(b,:); %和最大的点为车牌的右下角x1=first_point(1)+4; %坐标值修正x2=last_point(1)-4;y1=first_point(2)+4;y2=last_point(2)-4;I_plate=I(x1:x2,y1:y2);I_plate=OTSU(I_plate); %以OTSU算法对分割出的车牌进行自适应二值化处理I_plate=bwareaopen(I_plate,50);figure,imshow(I_plate),title('车牌提取') %画出最终车牌%========================= 字符分割============================X=[]; %用来存放水平分割线的横坐标flag=0;for j=1:size(I_plate,2)sum_y=sum(I_plate(:,j));if logical(sum_y)~=flag %列和有变化时,记录下此列X=[X j];flag=logical(sum_y);endendfigurefor n=1:7char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割for i=1:size(char,1) %这两个for循环对分割字符的上下进行裁剪if sum(char(i,:))~=0top=i;breakendendfor i=1:size(char,1)if sum(char(size(char,1)-i,:))~=0bottom=size(char,1)-i;breakendendchar=char(top:bottom,:);subplot(2,4,n);imshow(char);char=imresize(char,[32,16],'nearest'); %归一化为32*16的大小,以便模板匹配eval(strcat('Char_',num2str(n),'=char;')); %将分割的字符放入Char_i中end%========================== 字符识别============================= char=[];store1=strcat('京','津','沪','渝','冀','晋','辽','吉','黑','苏','浙'... %汉字识别,'皖','闽','赣','鲁','豫','鄂','湘','粤','琼','川','贵','云','陕'...,'甘','青','藏','桂','皖','新','宁','港','鲁','蒙');for j=1:34Im=Char_1;Template=imread(strcat('chinese\',num2str(j),'.bmp')); %chinese文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store1(index)];store2=strcat('A','B','C','D','E','F','G','H','J','K','L','M','M','N','P','Q','R'...,'S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');for i=2:7 %字母数字识别for j=1:35Im=eval(strcat('Char_',num2str(i)));Template=imread(strcat('cha&num\',num2str(j),'.bmp')); %cha&num文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store2(index)];endfigure,imshow(I),title(strcat('车牌为:',char))信研-11 XX 2011301XXXXXX模式识别作业—车牌识别1、作业要求:要求:任给一幅符合假定的图片,自动识别出车牌号。

基于Matlab的车牌识别系统

基于Matlab的车牌识别系统

一、摘要随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经不能满着实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。

汽车牌照的自动识别技术已经得到了广泛应用。

汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。

用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。

在研究的同时对其中出现的问题进行了具体分析,处理。

二、课程设计的任务和目的任务:使用MATLAB对包含车牌的图片进行处理,利用算法识别出车牌所在的区域,并辨认其数字及字母,最后在屏幕上输出所识别出的车牌号。

目的:1、让自己巩固理论课上所学的知识,理论联系实践。

2、锻炼自己的动手能力,激发自己的研究潜能,提高我们的协作精神。

三、设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。

图1 牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由牌照图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1 所示。

其基本工作过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;(2)由摄像机或CCD 摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。

matlab在汽车牌照识别系统中的应用

matlab在汽车牌照识别系统中的应用

MATLAB在汽车牌照识别系统中的应用摘要:汽车普及程度的提高使得智能交通技术迅猛发展,汽车牌照识别系统是智能交通管理领域和数字图像处理领域里的热点问题。

汽车牌照识别系统主要由图像预处理,边缘提取,字符定位,字符分割,字符识别几个部分组成。

本文介绍了MATLAB在汽车牌照图像处理识别系统中的部分应用。

该系统通过调用MATLAB函数,综合使用多种方法提高系统的有效识别能力。

关键词:MATLAB 边缘提取字符分割字符识别Application of MATLAB in License Plate Recognition SystemWANG Yanyan(School of Transportation Science and Engineering of BeihangUniversity, Beijing, 100191, China)Abstract: In this paper, CAN bus technology and SAE J1939 protocol are studied and a digital vehicle instrument solution based on Freescale's MC9S12HZ256 MCU is proposed. The message frame format and some engine-re lated parameters’ definition in SAE J1939 application layer protocol are introduced in detail. Stepper motor and its driver, also the methods for speed signal processing are introduced too. The hardware platform of digital vehicle instrument is composed by MCU, signal acquisition module and signal processing anddisplaying module. Data receiving and processing from CAN bus and sensors are accomplished by programming and vehicle condition can be reflected in real-time.Key words:digital vehicle instrument; MC9S12HZ256; stepper motor; CAN bus; SAE J1939引言车牌识别(License Plate Recognition System,LPRS)系统是计算机视觉与模式识别技术在智能交通领域应用的重要研究课题之一,是智能交通系统(Intelligent Transportation System,ITS)的重要组成部分。

数字图像处理车牌识别课程设计matlab实现附源代码

数字图像处理车牌识别课程设计matlab实现附源代码

基于 matlab 的车牌识别系统一、目的与要求目的:利用 matlab 实现车牌识别系统,熟悉matlab应用软件的根底知识,了解了根本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,防止理论与实践的脱离,稳固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。

同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论根底,有助于自身综合能力的提高。

要求:1.理解各种图像处理方法确切意义。

2.独立进展方案的制定,系统构造设计要合理。

3.在程序开发时,那么必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。

如果使用matlab 来进展开发,要理解每个函数的具体意义和适用X围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。

4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。

二、设计的内容学习 MATLAB 程序设计,利用MATLAB 函数功能,设计和实现通过设计一个车牌识别系统。

车牌识别系统的根本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进展预处理,再对牌照进展搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进展二值化并将其分割为单个字符,然后将其逐个与创立的字符模板中的字符进行匹配,匹配成功那么输出,最终匹配完毕那么输出那么为车牌的数字。

车牌识别系统的根本工作原理图如图1所下所示:车辆字符分割字符识别图像采集车牌的定位三、总体方案设计车辆牌照识别整个系统主要是由车牌定位和字符分割识别两局部组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。

为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的比照度和清晰可辩的牌照图象。

但由于是采用智能手机在开放的户外环境拍照,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进展识别前的预处理。

车牌识别matlab代码

车牌识别matlab代码

close allclc[fn,pn,fi]=uigetfile('ChePaiKu\*.jpg','选择图片');YuanShi=imread([pn fn]);%输入原始图像figure(1);subplot(3,2,1),imshow(YuanShi),title('原始图像');%%%%%%%%%%1、图像预处理%%%%%%%%%%%YuanShiHuiDu=rgb2gray(YuanShi);%转化为灰度图像subplot(3,2,2),imshow(YuanShiHuiDu),title('灰度图像');BianYuan=edge(YuanShiHuiDu,'robert',0.09,'both');%Robert算子边缘检测subplot(3,2,3),imshow(BianYuan),title('Robert算子边缘检测后图像');se1=[1;1;1]; %线型结构元素FuShi=imerode(BianYuan,se1); %腐蚀图像subplot(3,2,4),imshow(FuShi),title('腐蚀后边缘图像');se2=strel('rectangle',[30,30]); %矩形结构元素TianChong=imclose(FuShi,se2);%图像聚类、填充图像subplot(3,2,5),imshow(TianChong),title('填充后图像');YuanShiLvBo=bwareaopen(TianChong,2000);%从对象中移除面积小于2000的小对象figure(2);subplot(2,2,1),imshow(YuanShiLvBo),title('形态滤波后图像');%%%%%%%%%%2、车牌定位%%%%%%%%%%%[y,x]=size(YuanShiLvBo);%size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量YuCuDingWei=double(YuanShiLvBo);%%%%%%%%%%2.1、车牌粗定位之一确定行的起始位置和终止位置%%%%%%%%%%%Y1=zeros(y,1);%产生y行1列全零数组for i=1:yfor j=1:xif(YuCuDingWei(i,j)==1)Y1(i,1)= Y1(i,1)+1;%白色像素点统计endendend[temp,MaxY]=max(Y1);%Y方向车牌区域确定。

Readme(使用方法)

Readme(使用方法)

本matlab程序是实现车牌字母与数字的识别,请使用一张车牌号汉字、数字、中间小点清晰的图片,并尽量保证车牌在图中是长方形,且图中再无其他长方形物体,并且车牌外部还需要留有边缘,若为纯粹一个车牌截图,没有背景也不行。

将图片改名为car.jpg(有三个样例,改名后测试,结果较为准确,多次模拟后的结果正确率有大约90%)。

如图所示:
然后打开main.m点击运行。

若发现figure3不是如图所示的样子,譬如看不到第三位的点,或者第一位汉字被视作两个字符,或者车牌边框被算作字符,请手动修改图片使之符合要求。

然后经过(多次)模拟计算,可以得到结果,如下图所示:
Ps:由于时间有限,我只加入了0123456789ABCDEFGHKLMST,且每个只加入了一个训练样本,使用者可以自行加入更多的训练样本,使得运行的结果更加精准,使用面更广泛。

车牌识别说明文档更新_5.21

车牌识别说明文档更新_5.21

Matlab平台基于颜色的车牌识别程序一、摘要近年来,随着交通现代化的发展要求,汽车牌照自动识别技术已经越来越受到人们的重视.车牌自动识别技术中车牌定位、字符切割、字符识别及后处理是其关键技术.由于受到运算速度及内存大小的限制,以往的车牌识别大都是基于灰度图象处理的识别技术.其中首先要求正确可靠地检出车牌区域,为此提出了许多方法,如Hough变换以检测直线来提取车牌边界区域、使用灰度分割及区域生长进行区域分割,或使用纹理特征分析技术等.本文提出基于车牌彩色信息的彩色分割方法。

二、设计目的和意义目的:1、巩固理论课上所学的知识,理论联系实践。

2、锻炼自己的动手能力,激发研究潜能,提高协作精神。

意义:车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。

通过设计实现车牌识别系统,能够提高分析问题和解决问题的能力,还能培养一定的科研能力。

三、设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。

图1 牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由牌照图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1 所示。

其基本工作过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;(2)由摄像机或CCD 摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。

-基于matlab的车牌识别系统的设计(附程序+详解注释)

-基于matlab的车牌识别系统的设计(附程序+详解注释)

焦作大学毕业设计(论文)说明书作者:学号:学院(系):信息工程学院专业:通信技术题目:基于matlab的车牌识别系统的设计主题:指导教师:职称:讲师2012年12月摘要汽车车牌的识别系统是现代智能交通管理的重要组成部分之一。

车牌识别系统使车辆管理更智能化,数字化,有效的提升了交通管理的方便性和有效性。

车牌识别系统主要包括了图像采集、图像预处理、车牌定位、字符分割、字符识别等五大核心部分。

本文主要介绍图像预处理、车牌定位、字符分割三个模块的实现方法。

本文的图像预处理模块是将图像灰度化和用Roberts算子进行边缘检测的步骤。

车牌定位和分割采用的是利用数学形态法来确定车牌位置,再利用车牌彩色信息的彩色分割法来完成车牌部位分割。

字符的分割采用的方法是以二值化后的车牌部分进行垂直投影,然后在对垂直投影进行扫描,从而完成字符的分割。

本文即是针对其核心部分进行阐述并使用MATLAB软件环境中进行字符分割的仿真实验。

关键词:MATLAB、图像预处理、车牌定位、字符分割ABSTRACTVehicle license plate recognition system is one important of the modern intelligent traffic management. License plate recognition system to make more intelligent vehicle management, digital, Effective traffic management to enhance the convenience and effectiveness. License plate recognition system includes image acquisition, image preprocessing, license plate localization, character segmentation, character recognition and other five core parts. In this paper, preprocessing, license plate localization, character segmentation method for the realization of three modules.This is the image preprocessing module and the use of the image grayscale Roberts edge detection operator steps. License plate location and segmentation using mathematical morphology method is used to determine the license plate location,Re-use license plate color segmentation method of color information to complete the license plate area segmentation. Character segmentation approach is based on the license plate after thebinary part of the vertical projection, Then scan in the vertical projection, thus completing the character segmentation. This article is described for the core part and use the MATLAB software environment, the simulation experiments for character segmentation.Keywords: MATLAB software, image preprocessing, license plate localization, character segmentation .目录1. 绪论 (1)1.1 本课题的研究背景 (1)1.2 本课题的研究目的及意义 (2)1.3 国内外发展状况 (3)1.4 主要应用领域 (5)1.5 设计原理 (6)2. MATLAB简介 (7)2.1 MATLAB发展历史 (7)2.2 MATLAB的语言特点 (7)3.工作流程 (9)3.1 系统框架结构和工作流程 (9)4.各模块的实现 (11)4.1设计方案 (11)4.2图像预处理 (11)4.2.1图像灰度化 (11)4.2.2图像的边缘检测 (12)4.3车牌定位和分割 (14)4.3.1车牌的定位 (15)4.3.2车牌的分割 (16)4.3.3对定位后的彩色车牌的进一步处理 (17)4.4字符的分割和归一化处理 (17)4.4.1字符的分割 (18)4.4.2字符的归一化处理 (19)4.5 字符的识别 (19)5.实验结果和分析 (22)6.实验总结 (24)致谢 (25)参考文献 (26)程序附录 (27)第一章绪论1.1 本课题的研究背景现代社会已进入信息时代,随着计算机技术、通信技术和计算机网络技术的发展,自动化信息处理能力和水平不断提高,作为现代社会主要交通工具之一的汽车在人们的生产生活的各个领域得到大量使用,对他的信息进行自动采集和管理具有十分重要的意义,成为信息处理技术的一项重要研究课题。

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

clcclearclose allI=imread('chepai.jpg');subplot(3,2,1);imshow(I), title('原始图像');I_gray=rgb2gray(I);subplot(3,2,2),imshow(I_gray),title('灰度图像');%====================== 形态学预处理======================I_edge=edge(I_gray,'sobel');subplot(3,2,3),imshow(I_edge),title('边缘检测后图像');se=[1;1;1];I_erode=imerode(I_edge,se);subplot(3,2,4),imshow(I_erode),title('腐蚀后边缘图像');se=strel('rectangle',[25,25]);I_close=imclose(I_erode,se); %图像闭合、填充图像subplot(3,2,5),imshow(I_close),title('填充后图像');I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I_final),title('形态滤波后图像');%========================== 车牌分割============================= I_new=zeros(size(I_final,1),size(I_final,2));location_of_1=[];for i=1:size(I_final,1) %寻找二值图像中白的点的位置for j=1:size(I_final,2)if I_final(i,j)==1;newlocation=[i,j];location_of_1=[location_of_1;newlocation];endendendmini=inf;maxi=0;for i=1:size(location_of_1,1)%寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置temp=location_of_1(i,1)+location_of_1(i,2);if temp<minimini=temp;a=i;endif temp>maximaxi=temp;b=i;endendfirst_point=location_of_1(a,:); %和最小的点为车牌的左上角last_point=location_of_1(b,:); %和最大的点为车牌的右下角x1=first_point(1)+4; %坐标值修正x2=last_point(1)-4;y1=first_point(2)+4;y2=last_point(2)-4;I_plate=I(x1:x2,y1:y2);I_plate=OTSU(I_plate); %以OTSU算法对分割出的车牌进行自适应二值化处理I_plate=bwareaopen(I_plate,50);figure,imshow(I_plate),title('车牌提取') %画出最终车牌%========================= 字符分割============================X=[]; %用来存放水平分割线的横坐标flag=0;for j=1:size(I_plate,2)sum_y=sum(I_plate(:,j));if logical(sum_y)~=flag %列和有变化时,记录下此列X=[X j];flag=logical(sum_y);endendfigurefor n=1:7char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割for i=1:size(char,1) %这两个for循环对分割字符的上下进行裁剪if sum(char(i,:))~=0top=i;breakendendfor i=1:size(char,1)if sum(char(size(char,1)-i,:))~=0bottom=size(char,1)-i;breakendendchar=char(top:bottom,:);subplot(2,4,n);imshow(char);char=imresize(char,[32,16],'nearest'); %归一化为32*16的大小,以便模板匹配eval(strcat('Char_',num2str(n),'=char;')); %将分割的字符放入Char_i中end%========================== 字符识别============================= char=[];store1=strcat('京','津','沪','渝','冀','晋','辽','吉','黑','苏','浙'... %汉字识别,'皖','闽','赣','鲁','豫','鄂','湘','粤','琼','川','贵','云','陕'...,'甘','青','藏','桂','皖','新','宁','港','鲁','蒙');for j=1:34Im=Char_1;Template=imread(strcat('chinese\',num2str(j),'.bmp')); %chinese文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store1(index)];store2=strcat('A','B','C','D','E','F','G','H','J','K','L','M','M','N','P','Q','R'...,'S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');for i=2:7 %字母数字识别for j=1:35Im=eval(strcat('Char_',num2str(i)));Template=imread(strcat('cha&num\',num2str(j),'.bmp')); %cha&num文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store2(index)];endfigure,imshow(I),title(strcat('车牌为:',char))信研-11 XX 2011301XXXXXX模式识别作业—车牌识别1、作业要求:要求:任给一幅符合假定的图片,自动识别出车牌号。

如:给定如下图片,自动输出(京JX9168)2、设计步骤:所设计的车牌识别的流程包括图像预处理,车牌分割,字符分割,及字符识别。

详见matalb程序。

3、程序讲解1)第一部分为图像的预处理。

此部分借鉴了别人的程序,将灰度图像以sobel算子检测边缘;再对边缘图像进行腐蚀,去除掉细的,间断的边缘;对剩下的区域进行闭合以填充图像,此时可以看到车牌区域形成了一个大的连通域;调用bwareaopen函数去掉小的连通域,此时整个二值图像只b剩下了车牌区域为1。

如下图所示:2)第二部分为车牌的提取此部分的工作为将上一步的白色区域取出,其对应的就是车牌区域。

设计思路如下:首先将二值图像f中所有为1的点的坐标放入数组location_of_1中,对这些坐标遍历计算,寻找x坐标与y坐标之和最大的点a与最小的点b,a即为车牌的左上角,b为车牌的右下角。

通过这两个坐标将车牌分割出来,并对灰度车牌图像以OTSU算法进行自适应二值化分割。

最终效果如下:3)第三部分为字符分割此部分的工作是将车牌里的7个字符分别提取出来。

方法如下:对该二值图从左向右像按列z遍历,计算每一列之和,没有白点的列和为0,有白点的列和非零,转换为逻辑1,记录下所有列和在0与1转换的列,即为需要切割的列,共有14列,可切出7个字符。

切割出单个字符后,放入char_(i)中,并切割掉每个字符的上下的空白区域,完成精确切割,效果如下:4)第四部分为字符的识别识别的方法主要有模板匹配字符识别算法,统计特征匹配算法,神经网络字符识别算法和支持向量机模式识别算法。

由于分割的字符效果较好,为明显畸变,模k板维数低(32*16),且因为时间关系,这里采用了模板匹配识别算法。

该程序把切割出的字符与库里的汉字和字符的模板做减法运算,找到差别点最少的模板为对应模板,输出该模板对应的字符,最后识别出其为“京JX9168”。

相关文档
最新文档