基于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车牌识别课程设计一、课程目标知识目标: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的基本操作,能够利用MATLAB进行简单的图像处理,从而实现车牌号识别的功能。
具体来说,知识目标包括了解MATLAB的基本功能和图像处理的基本方法;技能目标包括能够熟练使用MATLAB进行车牌号识别的操作;情感态度价值观目标包括培养学生对技术的兴趣和认识,提高学生解决实际问题的能力。
二、教学内容本节课的教学内容主要包括MATLAB的基本操作、图像处理的基本方法和车牌号识别的实现。
首先,将介绍MATLAB的界面和基本功能,让学生熟悉MATLAB的工作环境。
然后,将讲解图像处理的基本方法,包括图像的读取、显示、滤波和边缘检测等。
最后,将通过一个实例,教授如何利用MATLAB进行车牌号识别的操作。
三、教学方法为了实现本节课的教学目标,将采用多种教学方法,包括讲授法、操作演示法和小组讨论法。
首先,将通过讲授法,向学生介绍MATLAB的基本操作和图像处理的基本方法。
然后,通过操作演示法,向学生展示如何利用MATLAB进行车牌号识别的操作。
最后,通过小组讨论法,让学生分组进行实践,互相交流学习,提高学生的实际操作能力。
四、教学资源为了支持本节课的教学内容和方法,将准备相应的教学资源。
教材将使用《MATLAB教程》一书,作为学生学习的基础资料。
参考书将包括《MATLAB图像处理》和《车牌号识别技术》等相关书籍,为学生提供更深入的学习资料。
多媒体资料将包括MATLAB的操作视频和车牌号识别的实例演示,帮助学生更好地理解和掌握相关知识。
实验设备将包括计算机和MATLAB软件,供学生进行实践操作。
五、教学评估本节课的教学评估将采用多种方式,以全面、客观地评价学生的学习成果。
平时表现将占评估总分的30%,包括学生的课堂参与度、提问和回答问题的积极性等。
作业将占评估总分的40%,包括课后练习和车牌号识别的实践项目。
考试将占评估总分的30%,包括选择题、填空题和编程题,以测试学生对MATLAB基本操作和图像处理方法的掌握程度。
基于MATLAB的车牌智能识别设计

基于MATLAB的车牌智能识别设计摘要:车牌智能识别技术是智能交通系统中的重要组成部分,能够提高交通管理效率和安全性。
本文基于MATLAB平台,设计了一种车牌智能识别系统,通过图像处理和模式识别技术实现车牌号码的准确识别。
该系统能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,具有较高的准确性和稳定性,可以有效应用于停车场管理、交通违法抓拍等领域。
关键词:车牌智能识别;MATLAB;图像处理;模式识别一、引言随着汽车数量的快速增长,交通拥堵和交通管理成为社会发展中的一大难题。
为了提高交通管理效率和安全性,智能交通系统得到了广泛的关注和应用。
车牌智能识别技术作为智能交通系统中的重要组成部分,能够实现对车辆行驶过程中的车牌信息进行实时提取和识别,为交通管理和监控提供了重要的支持。
二、相关技术及方法1. 图像处理技术图像处理技术是车牌智能识别系统中的核心技术之一,主要包括灰度化、二值化、边缘检测、形态学处理等操作。
灰度化是将彩色图像转换为灰度图像,简化了图像信息的处理;二值化将灰度图像转换为二值图像,方便进行特征提取和分割操作;边缘检测可以准确提取车牌的轮廓信息;形态学处理可以用于去除图像中的噪声点和填充孔洞,提高字符的连通性。
2. 字符分割与特征提取字符分割是指将车牌图像中的字符分离出来,是车牌识别的关键步骤之一。
在字符分割后,需要进行字符的特征提取,包括字符的大小、形状、像素点分布等特征。
这些特征可以用于字符的识别和分类,提高识别的准确性和鲁棒性。
3. 模式识别算法模式识别算法是车牌智能识别系统中的另一个核心技术,主要包括基于模板匹配的模式识别、基于统计学习的模式识别、基于深度学习的模式识别等方法。
这些算法能够对字符进行准确的识别和分类,为车牌智能识别系统提供了强大的分析和识别能力。
三、车牌智能识别系统设计基于MATLAB平台,设计的车牌智能识别系统主要包括图像预处理、字符分割与特征提取、模式识别和结果输出四个主要模块。
基于MATLAB的车牌识别系统的设计毕业设计

毕业设计基于MATLAB的车牌识别系统的设计摘要:汽车车牌的识别系统是现代智能交通管理的重要组成部分之一。
车牌识别系统使车辆管理更智能化,数字化,有效的提升了交通管理的方便性和有效性。
车牌识别系统主要包括了图像采集、图像预处理、车牌定位、字符分割、字符识别等五大核心部分。
本文主要介绍图像预处理、车牌定位、字符分割三个模块的实现方法。
本文的图像预处理模块是将图像灰度化和用Roberts算子进行边缘检测的步骤。
车牌定位和分割采用的是利用数学形态法来确定车牌位置,再利用车牌彩色信息的彩色分割法来完成车牌部位分割。
字符的分割采用的方法是以二值化后的车牌部分进行垂直投影,然后在对垂直投影进行扫描,从而完成字符的分割。
本文即是针对其核心部分进行阐述并使用MATLAB软件环境中进行字符分割的仿真实验。
关键词:MATLAB、图像预处理、车牌定位、字符分割一、发展背景车辆的牌照是机动车的识别标志,在交通管理中有着重要的作用。
通过汽车车牌识别系统可以监控车辆的信息和行驶状况,可以最迅速的实现车辆控制以及交通状况的调控,所以对于现代智能交通至关重要。
该系统主要有两大模块:图像处理模块和字符识别模块。
本文主要对图像处理模块进行设计和研究。
图像处理模块的质量好坏更是衡量整个系统成功与否的关键。
MATLAB语言对于图像的处理非常方便,能够直接调用编好的函数,为整个系统提供了保障。
二、系统框架结构以及流程汽车车牌自动识别系统主要包括触发拍照、图像采集、图像预处理、车牌定位、字符分割、字符识别、输出结果等单元。
触发拍照:该单元会自动检测车辆在指定区域的存在,现有的成熟技术的有线圈触发、视频触发、红外触发、雷达触发以及激光触发。
其中线圈触发和视频触发得到了广泛的应用。
图像采集:该单元是指道路上安装的摄像头在检测到有车辆通过的同时进行拍照并借助网络传送到汽车自动识别系统。
图像预处理:该单元是指车牌识别系统对拍摄的汽车图片进行灰度化和边缘检测等处理。
matlab车牌课程设计实验文件

matlab车牌课程设计实验文件一、课程目标知识目标:1. 理解MATLAB编程基础,掌握基本语法和常用函数。
2. 学习图像处理基本原理,掌握车牌识别技术的基本流程。
3. 掌握车牌定位、字符分割和字符识别的方法。
技能目标:1. 能够运用MATLAB编写程序,实现车牌图像的预处理和车牌定位。
2. 能够使用图像处理技术进行车牌字符分割。
3. 能够利用机器学习算法对车牌字符进行识别。
4. 培养学生动手实践能力,提高问题分析和解决能力。
情感态度价值观目标:1. 培养学生对图像处理和机器学习领域的兴趣,激发探索精神。
2. 培养学生合作意识,提高团队协作能力。
3. 增强学生对我国智能交通系统发展的认识,提高社会责任感。
课程性质:本课程为实践性较强的课程设计,结合了计算机视觉、图像处理和机器学习等多个领域的知识。
学生特点:学生具备一定的编程基础,对图像处理和机器学习有一定了解,对实际应用场景感兴趣。
教学要求:教师需引导学生掌握MATLAB编程和图像处理技术,注重实践操作,鼓励学生自主探索和团队协作,提高解决问题的能力。
通过课程设计,使学生能够将理论知识与实际应用相结合,达到学以致用的目的。
后续教学设计和评估将围绕上述具体学习成果展开。
二、教学内容1. MATLAB编程基础:- 数据类型与基本运算- 控制语句与函数编写- 图像读取与显示2. 车牌图像预处理:- 车牌图像灰度化- 图像二值化与滤波- 车牌区域定位3. 车牌字符分割:- 车牌区域提取- 车牌字符分割算法- 字符归一化处理4. 车牌字符识别:- 机器学习基础- 特征提取与选择- 字符识别算法(如SVM、神经网络等)5. 实践项目:- 车牌识别系统设计与实现- 算法优化与调试- 结果分析及评价教学内容安排与进度:- 第一周:MATLAB编程基础及图像读取显示- 第二周:车牌图像预处理与定位- 第三周:车牌字符分割- 第四周:车牌字符识别- 第五周:实践项目,综合运用所学知识完成车牌识别系统教学内容关联教材章节:- 《数字图像处理》第四章:图像增强- 《数字图像处理》第五章:图像分割- 《机器学习》第三章:特征工程- 《机器学习》第四章:分类算法三、教学方法1. 讲授法:- 对于MATLAB编程基础、图像处理原理和机器学习算法等理论知识,采用讲授法进行教学,为学生奠定扎实的基础。
基于某MATLAB地车牌识别课程设计

MATLAB课程设计报告书课题名称基于MATLAB的车牌识别课程设计姓名学号学院专业指导教师2016年6月21日基于MATLAB的车牌识别课程设计目录一.课程设计目的……………………………………………二.设计原理…………………………………………………三.详细设计步骤……………………………………………四. 设计结果及分析…………………………………………五. 总结………………………………………………………六. 设计体会…………………………………………………七. 参考文献…………………………………………………一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照输出。
三、详细设计步骤:1. 提出总体设计方案:牌照、颜色识别为了进行牌照识别,需要以下几个基本的步骤:a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照。
牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。
(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。
matlab车牌识别课程设计

matlab车牌识别课程设计一、教学目标本课程的教学目标是使学生掌握Matlab车牌识别的基本原理和方法,具备运用Matlab进行车牌识别项目开发的能力。
具体分解为以下三个维度:1.知识目标:•理解车牌识别的基本概念和流程。
•掌握Matlab的基本语法和操作。
•学习并应用图像处理和机器学习算法进行车牌识别。
2.技能目标:•能够使用Matlab进行基本的编程和数据分析。
•掌握车牌检测、分割和识别的技术。
•具备解决实际车牌识别问题的能力。
3.情感态度价值观目标:•培养学生的创新意识和团队合作精神。
•增强学生对智能交通系统的认识和关注。
•提高学生对编程和的兴趣和热情。
二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.Matlab基础:介绍Matlab的基本语法、数据类型和编程环境,使学生能够熟练使用Matlab进行编程和数据分析。
2.图像处理基础:讲解图像处理的基本概念和常用算法,包括图像滤波、边缘检测、形态学处理等,为学生进行车牌识别提供必要的理论支持。
3.车牌检测与分割:学习并应用车牌检测和分割的算法,包括边缘检测、轮廓提取、区域增长等,使学生能够准确地定位和提取车牌区域。
4.车牌识别算法:介绍并实现车牌识别的算法,包括字符分割、特征提取、分类器设计等,培养学生运用机器学习算法解决实际问题的能力。
5.项目实践:通过实际车牌识别项目的开发,使学生将所学知识和技能应用于实践,提高学生的综合运用能力和创新思维。
三、教学方法为了达到课程目标,将采用以下教学方法:1.讲授法:通过讲解和演示,传授Matlab基础知识和图像处理算法,帮助学生建立系统的理论框架。
2.案例分析法:分析并讨论实际车牌识别案例,引导学生运用所学知识解决实际问题,提高学生的综合运用能力。
3.实验法:通过实验操作,让学生动手实践车牌检测和识别的算法,培养学生的实际操作能力和创新思维。
4.小组讨论法:学生进行小组讨论和合作,促进学生之间的交流和团队合作精神,提高学生的沟通能力和团队协作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB课程设计报告书课题名称基于MATLAB的车牌识别课程设计姓名学号学院专业指导教师2016年6月21日基于MATLAB的车牌识别课程设计目录一.课程设计目的……………………………………………二.设计原理…………………………………………………三.详细设计步骤……………………………………………四. 设计结果及分析…………………………………………五. 总结………………………………………………………六. 设计体会…………………………………………………七. 参考文献…………………………………………………一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
三、详细设计步骤:1. 提出总体设计方案:牌照号码、颜色识别为了进行牌照识别,需要以下几个基本的步骤:a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。
(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。
首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。
流程图:(2)牌照字符分割 :完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。
字符分割一般采用垂直投影法。
由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一(3)牌照字符识别 :字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。
基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。
基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。
实际应用中,牌照识别系统的识别率与牌照质量和拍摄质量密切相关。
牌照质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、牌照被遮挡、牌照倾斜、高亮反光、多牌照、假牌照等等;实际拍摄过程也会受到环境亮度、拍摄亮度、车辆速度等等因素的影响。
这些影响因素不同程度上降低了牌照识别的识别率,也正是牌照识别系统的困难和挑战所在。
为了提高识别率,除了不断的完善识别算法,还应该想办法克服各种光照条件,使采集到的图像最利于识别。
2. 各模块的实现:2.1输入待处理的原始图像:clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread('3.jpg');%imread函数读取图像文件图2.1原始图像2.2图像的灰度化:彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。
由彩色转换为灰度的过程叫做灰度化处理。
选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。
%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Sgray),title('原始黑白图像');图2.2原始黑白图像2.3对原始图像进行开操作得到图像背景图像:s=strel('disk',13);%strei函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title('背景图像');%输出背景图像图2.3背景图像2.4灰度图像与背景图像作减法,对图像进行增强处理:Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像图2.4黑白图像2.5取得最佳阈值,将图像二值化:二值图像是指整幅图像画面内仅黑、白二值的图像。
在实际的车牌处理系统中,进行图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。
车牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提高处理效率。
阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或255,否则灰度值设置为255或0。
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);figure,imshow(bw2);title('图像二值化');%得到二值图像图2.5二值图像2.6边缘检测:两个具有不同灰度值的相邻区域之间总存在边缘,边缘就是灰度值不连续的结果,是图像分割、纹理特征提取和形状特征提取等图像分析的基础。
为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。
所以,如果一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一组这样的依据事先定好的连接准则相连的边缘点就定义为一条边缘。
经过一阶的导数的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测的边缘点太多。
可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部最大值,可以检测出精确的边缘。
一阶导数的局部最大值对应二阶导数的零交叉点,这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。
grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界figure,imshow(grd);title('图像边缘提取');%输出图像边缘图2.6像边缘提取2.7对得到图像作开操作进行滤波:数学形态非线性滤波,可以用于抑制噪声,进行特征提取、边缘检测、图像分割等图像处理问题。
腐蚀是一种消除边界点的过程,结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点;膨胀是将与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大,孔洞缩小,可填补目标物体中的空洞,形成连通域。
先腐蚀后膨胀的过程称为开运算,它具有消除细小物体,并在纤细处分离物体和平滑较大物体边界的作用;先膨胀后腐蚀的过程称为闭运算,具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。
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]');%输出开运算的图像图2.7.1闭运算的图像图2.7.2开运算的图像图2.7.3开运算的图像2.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('图像彩色标记');%输出框架的彩色图像图2.8.1彩色图像b. 计算出包含所标记的区域的最小宽和高,并根据先验知识,比较谁的宽高比更接近实际车牌宽高比,将更接近的提取并显示出来。
计算矩形的宽度计算矩形的高度框架的宽度和高度的范围车牌的开始列车牌的开始行计算车牌长宽比获取车牌二值子程序流程图图2.8.2灰度子图和二值子图2.9对水平投影进行峰谷分析:对水平投影进行峰谷分析,计算出车牌上边框、车牌字符投影、车牌下边框的波形峰上升点、峰下降点、峰宽、谷宽、峰间距离、峰中心位置参数。