matlab车牌识别课程设计报告(附源代码)
(完整版)基于matlab的车牌识别(含子程序)
基于 matlab 的车牌鉴别系统一、对车辆图像进行预办理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg',文件 (*.jpg)'});'JPEG 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');% 选择阈值,用 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车牌课程设计实验文件一、课程目标知识目标: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程序设计任务书目录一.课程设计目的 (3)二.设计原理 (3)三.详细设计步骤 (3)四. 设计结果及分析 (18)五. 总结 (19)六. 设计体会 (20)七. 参考文献 (21)一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
三、详细设计步骤:v1.0 可编辑可修改1. 提出总体设计方案:牌照号码、颜色识别为了进行牌照识别,需要以下几个基本的步骤: a.牌照定位,定位图片中的牌照位置; b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。
(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。
首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。
流程图:(2)牌照字符分割 :导入原始图像图像预处理增强效果图像边缘提取车牌定位 对图像开闭运算完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。
基于某MATLAB地车牌识别课程设计
MATLAB课程设计报告书课题名称基于MATLAB的车牌识别课程设计姓名学号学院专业指导教师2016年6月21日基于MATLAB的车牌识别课程设计目录一.课程设计目的……………………………………………二.设计原理…………………………………………………三.详细设计步骤……………………………………………四. 设计结果及分析…………………………………………五. 总结………………………………………………………六. 设计体会…………………………………………………七. 参考文献…………………………………………………一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照输出。
三、详细设计步骤:1. 提出总体设计方案:牌照、颜色识别为了进行牌照识别,需要以下几个基本的步骤:a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照。
牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。
(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。
基于Matlab的车牌识别(完整版)
基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。
本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。
并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。
一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。
车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。
二、设计步骤总体步骤为:基本的步骤: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.小组讨论法:学生进行小组讨论和合作,促进学生之间的交流和团队合作精神,提高学生的沟通能力和团队协作能力。
MATLAB车牌识别系统课程设计
MATLAB车牌识别系统课程设计一、课程目标知识目标:1. 学生能理解MATLAB编程环境,掌握基本的数据类型、运算符和流程控制语句。
2. 学生能掌握车牌图像的预处理方法,包括图像灰度化、二值化、滤波去噪等。
3. 学生能理解并实现车牌定位和分割的算法,提取车牌字符。
4. 学生能掌握车牌字符识别的方法,如模板匹配、神经网络等。
技能目标:1. 学生能够运用MATLAB编写程序,对车牌图像进行处理和分析。
2. 学生能够独立设计并实现一个简单的车牌识别系统。
3. 学生能够通过实践操作,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生培养对图像处理和模式识别领域的兴趣,激发学习热情。
2. 学生通过实践,认识到编程在解决实际问题中的重要性,增强自信心。
3. 学生在团队协作中,学会尊重他人,培养良好的沟通能力和合作精神。
课程性质:本课程为选修课,旨在让学生在实际项目中运用所学的编程知识,提高解决实际问题的能力。
学生特点:学生为高中年级,已具备一定的编程基础,对新鲜事物充满好奇心,但实践经验不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,引导学生通过自主学习和团队协作,完成课程目标。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. MATLAB编程基础- 数据类型与运算符- 程序流程控制- 函数与脚本- 图像处理基本操作2. 车牌图像预处理- 图像读取与显示- 灰度化与二值化- 滤波去噪- 边缘检测与轮廓提取3. 车牌定位与分割- 车牌区域提取- 车牌字符分割- 车牌倾斜校正4. 车牌字符识别- 模板匹配法- 神经网络法- 支持向量机法5. 车牌识别系统实现- 系统框架设计- 模块化编程实现- 系统测试与优化教学内容依据课程目标,结合教材章节进行安排。
在教学过程中,注重理论与实践相结合,引导学生逐步掌握MATLAB编程及图像处理方法。
教学内容分为五个部分,每部分对应相应的知识点,确保学生能够系统地学习车牌识别系统的设计原理和实现方法。
基于Matlab的车牌识别课程设计报告
导入原始 图像
图像预处理 增强效果图
进行边缘 提取
车牌具体 位置定位
对车牌进 行处理
输出 结果
对分割的字 符进行识别
字符特征 提取
对字符进 行归一化
对字符进行 分割
图1 牌照识别系统原理图
该系统是计算机 图像处理与字符识别技术在 智能化交通管理系统中的应用 ,它 主 要 由 牌 照 图 像 的 采 集 和 预 处 理 、牌 照 区 域 的 定 位 和 提 取 、牌 照 字 符 的 分 割 和 识 别 等几个部分组成,如图1 所示。其基本工作过程如下:
对比以上几幅图片,图 12 的边缘已经模糊掉了。图 11 中包含的噪声太多, 图 13 未经滤波直接提取出的边缘图像最清晰,所包含的有用信息最多。
(二)、牌照的定位和分割
牌照的定位和分 割是牌照识别系统的关键技 术之一,其主要目的是在经图象预 处 理 后 的 原 始 灰 度 图 象 中 确 定 牌 照 的 具 体 位 置 ,并 将 包 含 牌 照 字 符 的 一 块 子 图 象 从 整个图象中分割出来,供字符识别子系 统识别之用,分割的准确与否直接关系到整 个 牌 照 字 符 识 别 系 统 的 识 别 率 。根 据 其 灰 度 值 与 周 边 区 域 有 明 显 的 不 同 ,在 其 边 缘 形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。
牌 区 域 , 确 定 车 牌 底 色 蓝 色 RGB对 应 的 各 自 灰 度 范 围 , 然 后 行 方 向 统 计 在 此 颜 色 范
围 内 的 像 素 点 数 量 ,设 定 合 理 的 阈 值 ,确 定 车 牌 在 行 方 向 的 合 理 区 域 。然 后 ,在 分
割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。
车牌识别matlab课程设计
车牌识别matlab课程设计一、课程目标知识目标:1. 理解车牌识别技术的基本原理,掌握相关图像处理方法;2. 学会使用MATLAB软件进行车牌检测、字符分割和识别的基本操作;3. 了解我国车牌号码的编码规则及特点。
技能目标:1. 能够运用MATLAB软件进行车牌图像的预处理,包括图像滤波、二值化等;2. 掌握基于形态学运算的车牌定位方法,并能够独立完成车牌检测任务;3. 学会使用模板匹配或深度学习等方法进行车牌字符识别,并实现简单的车牌识别系统。
情感态度价值观目标:1. 培养学生对图像处理和模式识别领域的兴趣,激发其探索精神;2. 增强学生的团队合作意识,提高沟通协作能力;3. 培养学生严谨的科学态度和良好的学术道德。
本课程针对高年级学生,结合学科特点和教学要求,旨在帮助学生掌握车牌识别技术的基本原理和方法,提高实际操作能力。
通过课程学习,使学生能够独立完成车牌识别系统的设计和实现,培养其解决实际问题的能力,同时注重培养学生的情感态度和价值观,使其成为具有创新精神和实践能力的高素质人才。
二、教学内容1. 图像预处理:介绍图像滤波、灰度化、二值化等基本图像处理技术,分析其在车牌识别中的作用;教材章节:第三章 图像预处理内容列举:3.1-3.4节2. 车牌定位:讲解基于形态学的车牌定位方法,包括腐蚀、膨胀、开运算和闭运算等;教材章节:第四章 车牌定位内容列举:4.1-4.4节3. 车牌字符分割:介绍投影法、连通域分析等字符分割方法,分析各种方法的优缺点;教材章节:第五章 车牌字符分割内容列举:5.1-5.3节4. 车牌字符识别:讲解模板匹配、深度学习等字符识别方法,并进行实际操作演示;教材章节:第六章 车牌字符识别内容列举:6.1-6.4节5. 车牌识别系统设计:结合前面的教学内容,指导学生完成一个简单的车牌识别系统设计;教材章节:第七章 车牌识别系统设计内容列举:7.1-7.3节本章节教学内容根据课程目标进行科学性和系统性地组织,涵盖车牌识别技术的主要环节。
matlab基于阈值分割的车牌定位识别课程设计报告
matlab基于阈值分割的车牌定位识别课程设计报告1. 引言1.1 概述车牌定位与识别是计算机视觉领域的一个重要研究方向,其在交通管理、安全监控以及智能交通系统等领域具有广泛的应用前景。
基于阈值分割的车牌定位识别方法是一种常用且有效的方法,能够实现对车牌图像的精确定位和准确识别。
本文将介绍基于阈值分割的车牌定位识别课程设计报告,旨在通过深入探讨车牌定位与识别方法及其在Matlab中的实现,提供给读者一个全面而系统的学习参考。
文章内容包括图像预处理、边缘检测算法、车牌区域提取算法等方面,并详尽介绍了字符分割和识别方法。
同时,我们将通过编写Matlab程序来实现所述方法,并进行相关性能评估和结果分析。
1.2 文章结构本文共分为五个部分进行论述。
除引言外,还包括“2. 车牌定位方法”、“3. 车牌字符分割和识别方法”、“4. Matlab实现与结果分析”以及“5. 结论与展望”。
在这些部分中,我们将介绍车牌定位过程中的图像预处理、边缘检测算法,以及车牌区域的提取方法。
同时,我们将详细讨论字符分割、特征提取和识别算法,并展示基于Matlab编写的程序实现过程与结果分析。
最后,我们将在结论部分对本文内容进行总结,并提出可改进之处的展望。
1.3 目的本课程设计报告的目的是通过理论与实践相结合的方式,深入介绍基于阈值分割的车牌定位识别方法及其在Matlab中的实现。
我们希望读者通过学习本报告能够掌握车牌定位与识别技术中各个环节的原理和实现方法,并能够独立完成类似项目的设计与实施。
同时,我们也希望通过对Matlab编程实现过程和结果分析等内容的详细说明,激发读者对该领域深度研究和创新的兴趣。
2. 车牌定位方法2.1 图像预处理:车牌定位的第一步是对输入图像进行预处理,以便提取出车牌区域。
在这个阶段,我们通常采用一系列的图像处理操作来增强车牌的边缘特征,并去除不相关的背景信息。
具体来说,常用的图像预处理技术包括灰度化、高斯滤波、直方图均衡化和二值化。
matlab车牌识别程序课程设计
matlab车牌识别程序课程设计一、课程目标知识目标:1. 掌握MATLAB编程基础,了解其在图像处理领域的应用;2. 学习车牌识别的基本原理,了解车牌定位、字符分割和识别的技术要点;3. 了解我国车牌的格式及特点,为编写车牌识别程序打下基础。
技能目标:1. 能够运用MATLAB编写简单的车牌识别程序,实现车牌的自动识别;2. 学会使用MATLAB内置函数进行图像处理,如边缘检测、形态学运算等;3. 培养学生动手实践能力,提高编程技巧和解决问题的能力。
情感态度价值观目标:1. 培养学生对计算机视觉领域的兴趣,激发学习热情;2. 培养学生的团队协作精神,学会在编程过程中相互交流、共同进步;3. 培养学生严谨的科学态度,注重实验数据和分析,提高解决问题的能力。
本课程针对高中年级学生,结合学科特点和教学要求,设计了一套实用性强的MATLAB车牌识别程序课程。
课程旨在帮助学生掌握MATLAB编程基础,学会运用MATLAB进行图像处理,并在此基础上实现车牌识别。
通过本课程的学习,学生将能够独立编写简单的车牌识别程序,提高编程能力和解决问题的能力。
同时,课程注重培养学生的团队协作精神和科学态度,为将来的学习和工作打下坚实基础。
二、教学内容1. MATLAB编程基础:- 数据类型、变量与运算符;- 控制流程:条件语句、循环语句;- 函数编写与调用;- 数组、矩阵及其操作。
2. 图像处理基础:- 图像读取、显示与保存;- 图像类型转换与色彩空间;- 图像滤波与增强;- 边缘检测、形态学运算。
3. 车牌识别技术:- 车牌定位技术:颜色分割、边缘检测、轮廓提取;- 车牌字符分割:投影法、连通区域法;- 车牌字符识别:模板匹配、神经网络、支持向量机。
4. 实践项目:- 使用MATLAB实现车牌定位;- 使用MATLAB实现车牌字符分割;- 使用MATLAB实现车牌字符识别;- 整合以上技术,编写完整的车牌识别程序。
教学内容根据课程目标进行选择和组织,保证科学性和系统性。
matlab车牌识别课程设计报告(附源代码)
Matlab 程序设计任务书分院(系)信息科学与工程专业学生姓名学号设计题目车牌识别系统设计内容及要求:车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
1.牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
2.当车辆检测部分检测到车辆到达时 , 触发图像采集单元,采集当前的视频图像。
3.牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
进度安排:19 周: Matlab 环境熟悉与基础知识学习19周:课程设计选题与题目分析20周:程序设计编程实现20周:课程设计验收与答辩指导教师(签字):学院院长(签字):年月日年月日目录一.课程设计目的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3二.设计原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3三.详细设计步骤⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3四.设计结果及分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18五.总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19六.设计体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20七.参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理 :牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
实验报告用MATLAB实现车牌识别系统
图像处置大作业实验报告--用MATLAB实现车牌识别系统作者东南大学电子系李浩翔 06006435指导教师张雄实验日期 2020-1-10索引:1.2.3.4.5.6.1.2.1.2.实验目的利用MATLAB对包括车牌的图片进行处置,利用算法识别出车牌所在的区域,并识别其数字及字母,最后在屏幕上输出所识别出的车牌号。
实验原理1.将拍照下的彩色图像转换为灰度图,以后用中值滤波对灰度图像进行预处置,从而减少干扰信息。
2.利用sobel算子识别出图像的边缘,并转化为二值化图像。
并对二值化以后的图像进行卷积,增强边缘的轮廓。
3.用膨胀-再侵蚀的方式别离作用于图像的横轴与纵轴,将小块的联通区域连接起来,使车牌的形状加倍清楚,为下一步的识别做好预备。
4.利用车牌长宽比的特性对各个联通区域进行判定,识别出车牌所在区域,并截取。
5.对截掏出的车牌区域进行进一步的处置,分割出各个字符。
6.对分割出的字符进行特点判定,从而识别出具体的车牌号。
实验步骤1.预处置A. 将拍照下的彩色图像转换为灰度图,便于进行接下来的算法处置。
图1 拍摄下的图片图2 转换的灰度图B.对灰度图进行中值滤波,减少干扰点对二值化运算结果的阻碍。
im_gray=medfilt2(im_gray,[3 3]);图3 进行中值滤波后的灰度图C.将中值滤波后的灰度图用设定门限灰度的方式(取门限值为转化为二值化图像,在后继的车牌区域截取运算中作为源图像利用。
Image = im2bw(im_gray, ;图4 使用设定灰度门限的方法获得的二值化图像2.边缘识别A.利用sobel算子识别出图3中的边缘区域,并将其转换为二值化图像。
在转换后的二值化图像中,边缘区域被作为白点标出,而非边缘区域被黑色区域覆盖。
BW = edge(im_gray,'sobel');图5 识别出的边缘区域B.利用卷积的方式,对图5的边缘区域进行增强,为下一步的运算做好预备。
车牌识别matlab课程设计
车牌识别matlab课程设计一、教学目标本课程旨在通过车牌识别Matlab课程设计,让学生掌握车牌识别的基本原理和方法,学会使用Matlab软件进行车牌识别的实现和优化。
具体的教学目标如下:1.了解车牌识别的基本原理和主要方法。
2.掌握Matlab软件的基本操作和编程技巧。
3.理解并能够运用车牌识别Matlab程序进行实际问题的分析和解决。
4.能够运用Matlab软件进行车牌识别的程序设计和实现。
5.能够对车牌识别程序进行调试和优化,提高识别准确率和效率。
6.能够运用车牌识别技术解决实际问题,如交通监控、停车场管理等。
情感态度价值观目标:1.培养学生的创新意识和实践能力,提高他们对计算机视觉技术的兴趣和热情。
2.培养学生的团队合作意识和沟通能力,提高他们在团队项目中的协作能力。
3.培养学生的社会责任感和职业道德,使他们能够将所学的技术应用于解决实际问题,为社会发展做出贡献。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.车牌识别的基本原理和主要方法,包括车牌定位、车牌分割、车牌字符识别等。
2.Matlab软件的基本操作和编程技巧,包括Matlab的语法规则、函数使用、绘图功能等。
3.车牌识别Matlab程序的设计和实现,包括图像处理、特征提取、分类算法等。
4.车牌识别程序的调试和优化,包括错误分析、性能评估、算法改进等。
5.车牌识别技术的应用案例,如交通监控、停车场管理、智能交通系统等。
为了实现课程目标,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:通过教师的讲解,让学生了解车牌识别的基本原理和方法,掌握Matlab软件的基本操作和编程技巧。
2.案例分析法:通过分析实际案例,让学生学会运用车牌识别技术解决实际问题,提高他们的应用能力和创新能力。
3.实验法:通过实验操作,让学生亲手实践车牌识别程序的设计和实现,培养他们的实践能力和团队合作意识。
4.讨论法:通过分组讨论和课堂讨论,让学生互相交流学习心得和经验,提高他们的沟通能力和合作能力。
MATLAB车牌识别论文加源码
xxxx大学数字图像处理本科生课程论文论文题目:___车牌识别方法研究______完成时间:___2016年6月1日_______所在专业:___软件工程______________所在年级:___大三年级______________基于MATLAB的车牌识别方法研究xxx级软件专业1班 xxx xx摘要:汽车车牌的识别是智能交通管理的重要组成部分之一。
本文主要介绍车牌区域提取、字符切割、字符识别。
车牌区域提取主要包括图像灰度图转化、图像边缘检测、灰度图腐蚀、图像平滑处理、边界值计算。
字符切割主要包括图像去噪处理、图像膨胀和腐蚀处理。
字符识别主要包括图像膨胀和腐蚀处理、字符归一化。
关键词:MATLAB、车牌区域提取、字符识别、字符切割1 研究背景随着经济社会的迅猛发展,人们的生活水平的提高,机动车辆的数量也越来越多。
为了提高车辆的管理效率,缓解公路上的交通压力,我们必须找到一种解决方案。
而作为汽车“身份证”的汽车车牌,是在公众场合能够唯一确定汽车身份的凭证。
我们可以以此为依据,设计一种车牌识别系统监控各个车辆的情况。
车牌识别的难点:① 我国汽车牌照自身特征的复杂性1) 汉字、字母、数字混合。
我国的车牌不单单有英文字母和阿拉伯数字,还有汉字。
2) 颜色种类多。
国外的车牌颜色种类相对于国内较少一些,我国的车牌颜色种类较多。
3) 人为因素复杂。
由于环境、道路或者人为因素造成车牌有严重污渍、车牌模糊不清或者车牌偏斜角度很大的车辆,在我国都可以上路行驶。
4) 车牌格式多。
我国的车牌格式很多,包括:民用车牌、公安警察车牌、武警车牌、军车车牌、外交车牌、特种车牌、消防车牌等。
② 外部环境影响1) 外部光照条件各不相同,白天和晚上的光照各不相同。
光照对采集的图像质量产生很大的影响。
不同的光照角度对车牌光照的不均匀影响也很大。
不同的气候条件、背景光照环境、车牌反光程度都决定了车牌的亮度特征。
2) 外界背景的复杂程度也影响车牌的定位准确率。
基于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平台下的车牌识别系统设计
3、实验改进
3、实验改进
根据实验结果,我们发现车牌定位和字符分割模块是影响系统性能的关键因 素。因此,我们计划从以下两个方面进行改进:
3、实验改进
1、针对车牌定位模块,尝试引入更多的特征提取方法,以便更准确地定位车 牌区域;
2、针对字符分割模块,研究更为稳健的连通域分析方法,减少误分割和漏分 割。
三、实验结果与分析
1、实验设置
1、实验设置
为了评估车牌识别系统的性能,我们构建了一个包含200张车牌图像的数据集, 其中包含了不同的光照条件、车牌位置和尺寸。评估指标主要包括准确率、召回 率和运行时间。
2、实验结果分析
2、实验结果分析
经过大量实验,我们得到了以下结果: 1、车牌定位模块的准确率为95%,召回率为90%;
1、需求分析
3、适应性:系统应能适应不同的环境条件,包括不同的光照条件、车牌位置 和车牌尺寸等;
1、需求分析
4、可靠性:系统应具备一定的可靠性,能够稳定运行,保证识别结果的准确 性。
2、总体设计
2、总体设计
在总体设计阶段,我们将车牌识别系统分解为以下几个模块: 1、车牌定位模块:该模块主要负责寻找并定位车牌区域,排除其他干扰因素;
基于MATLAB平台下的车牌识别 系统设计
01 一、引言
目录
02
二、车牌识别系统设 计
03 三、实验结果与分析
04 四、结论与展望
05 参考内容
一、引言
一、引言
随着社会的快速发展和科技的不断进步,智能化交通管理成为了研究的热点。 车牌识别系统作为智能化交通管理的重要组成部分,能够自动识别车辆身份,提 高交通监管能力和服务质量。本次演示将基于MATLAB平台,设计一套车牌识别系 统,旨在提高车牌识别的准确性和效率,为智能交通管理提供有力支持。
matlab车牌识别课实验报告计报告(附源代码)
目录一.课程设计目的 (3)二.设计原理 (3)三.详细设计步骤 (3)四. 设计结果及分析 (18)五. 总结 (19)六. 设计体会 (20)七. 参考文献 (21)一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
三、详细设计步骤:1. 提出总体设计方案:牌照号码、颜色识别为了进行牌照识别,需要以下几个基本的步骤:a.牌照定位,定位图片中的牌照位置;b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。
牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。
(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。
首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。
流程图:完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。
字符分割一般采用垂直投影法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab程序设计任务书目录一.课程设计目的 (3)二.设计原理 (3)三.详细设计步骤 (3)四. 设计结果及分析 (18)五. 总结 (19)六. 设计体会 (20)七. 参考文献 (21)一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。
通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。
二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。
三、详细设计步骤: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对水平投影进行峰谷分析:对水平投影进行峰谷分析,计算出车牌上边框、车牌字符投影、车牌下边框的波形峰上升点、峰下降点、峰宽、谷宽、峰间距离、峰中心位置参数。
histcol1=sum(sbw1); %计算垂直投影histrow=sum(sbw1'); %计算水平投影figure,subplot(2,1,1),bar(histcol1);title('垂直投影(含边框)');%输出垂直投影subplot(2,1,2),bar(histrow); title('水平投影(含边框)');%输出水平投影图2.9.1垂直投影和水平投影figure,subplot(2,1,1),bar(histrow); title('水平投影(含边框)');%输出水平投影subplot(2,1,2),imshow(sbw1);title('车牌二值子图');%输出二值图对水平投影进行峰谷分析:求水平投影的平均值求水平投影的最小值取阈值计算谷宽度计算峰距离计算下降点找到峰中心位置图2.9.2水平投影和二值图程序流程图2.10计算车牌旋转角度:a.车牌倾斜的原因导致投影效果峰股谷不明显,在这里需要做车牌矫正处理。