2022年数字的图像处理车牌识别课程设计matlab实现附源代码 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年数字的图像处理车牌识别课程设计matlab实现附源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年数字的图像处理车牌识别课程设计matlab实现附源代码 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用标准文案精彩文档基于 matlab 的车牌识别系统一、目的与要求目的: 利用 matlab 实现车牌识别系统,熟悉 matlab 应用软件的基础知识,了解了基本程序设计方法, 利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、 高效的贯穿到实践中来,避免理论与实践的脱离,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践, 提高自身的动手能力。同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。要求:1. 理解各种图像处理方法确切意义。2. 独立进行方案的制定,系统结构设计要合理。3在程序开发时,则必须清
2、楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。如果使用matlab 来进行开发,要理解每个函数的具体意义和适用范围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。二、设计的内容学习 MATLAB 程序设计,利用MATLAB 函数功能,设计和实现通过设计一个车牌识别系统。车牌识别系统的基本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后将其逐个与创建的字符模板中的字符进行匹配,匹配
3、成功则输出, 最终匹配结束则输出则为车牌号码的数字。车牌识别系统的基本工作原理图如图 1所下所示:车辆图像采集图像预处理车牌的定位字符分割字符识别输出车牌号码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档三、总体方案设计车辆牌照识别整个系统主要是由车牌定位和字符分割识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。为了用于
4、牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于是采用智能手机在开放的户外环境拍照,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学
5、畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、 笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要将拍出的车牌进行处理,在这个过程中,我采用画图工具,将汽车图像的车牌部分进行裁剪,并将车牌的蓝色部分过亮的地方颜色加深,还将车牌中的一个白色的原点抹去,另外还将车牌上的铆钉使用车牌的蓝色背景覆盖,这样分割出的字符更加准确。车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理, 所以处理器和内存要求比较高,CPU 要求主频在 600HZ
6、及以上,内存在 128MB及以上。系统可以运行于Windows7、Windows2000或者 Windows XP操作系统下,程序调试时使用 matlabR2011a 。四、各个功能模块的主要实现程序(一)首先介绍代码中主要的函数功能及用法:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档1.Imerode 功能 :对图像实现腐蚀操作,即膨胀操作的反操作。用法 :IM2 = imerode(IM,SE) I
7、M2 = imerode(IM,NHOOD) IM2 = imerode(IM,SE,PACKOPT,M) IM2 = imerode(.,PADOPT) IM2 = imerode(IM,SE) 腐蚀灰度,二值,压缩二值图像IM,返回 IM2。参数 SE为由 strel函数返回的结构元素或者结构元素对象组。IM2 = imerode(IM,NHOOD)腐蚀图像 IM,这里 NHOOD 是定义结构元素邻域0 和 1 的矩阵。IM2 = imerode(.,PADOPT)指出输出图像的大小(是否与输入图像大小一致)。2.imdilate 功能:对图像实现膨胀操作。用法 :IM2 = imdila
8、te(IM,SE) IM2 = imdilate(IM,NHOOD) IM2 = imdilate(IM,SE,PACKOPT) IM2 = imdilate(.,PADOPT) IM2 = imdilate(IM,SE) 膨胀灰度,二值,压缩二值图像IM,返回 IM2。参数 SE为由 strel函数返回的结构元素或者结构元素对象组。IM2 = imdilate(IM,NHOOD)膨胀图像IM,这里 NHOOD 是定义结构元素邻域0和 1 的矩阵。IM2 = imdilate(IM,SE,PACKOPT)定义 IM 是否是一个压缩的二值图像。IM2 = imdilate(.,PADOPT)指出
9、输出图像的大小。3.strel功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象( 本论坛随即对膨胀腐蚀等操作进行讲解 ) 。用法: SE = strel(shape,parameters) 创建由指定形状shape 对应的结构元素。其中shape 的种类有arbitrary,pair,diamond,periodicline,disk,rectangle line,square,octagon 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - -
10、- - - - 实用标准文案精彩文档参数 parameters一般控制SE的大小。4.edgeBW = edge(I) 采用灰度或一个二值化图像I 作为它的输入,并返回一个与I 相同大小的二值化图像BW ,在函数检测到边缘的地方为1,其他地方为0。 BW = edge(I,sobel) 自动选择阈值用Sobel 算子进行边缘检测。 BW = edge(I,sobel,thresh) 根据所指定的敏感度阈值thresh ,用 Sobel 算子进行边缘检测,它忽略了所有小于阈值的边缘。当thresh为空时,自动选择阈值。 BW = edge(I,sobel,thresh,direction) 根据
11、所指定的敏感度阈值thresh ,在所指定的方 向direction上 , 用Sobel 算 子 进 行 边 缘 检 测 。 Direction可 取 的 字 符 串 值 为horizontal(水平方向 ) 、vertical(垂直方向 ) 或 both( 两个方向 ) 。 BW,thresh = edge(I,sobel,.) 返回阈值 BW = edge(I,prewitt) 自动选择阈值用prewitt算子进行边缘检测。 BW = edge(I,prewitt,thresh) 根据所指定的敏感度阈值thresh ,用 prewitt算子进行边缘检测,它忽略了所有小于阈值的边缘。当thr
12、esh为空时,自动选择阈值。 BW = edge(I,prewitt,thresh,direction) 根据所指定的敏感度阈值thresh ,在所指定的方向direction上,用prewitt算子进行边缘检测。Direction可取的字符串值为horizontal(水平方向 ) 、vertical(垂直方向 ) 或 both( 两个方向 ) 默认方向为both 。BW = edge(I,roberts) 自动选择阈值用roberts算子进行边缘检测。BW = edge(I,roberts,thresh) 根据所指定的敏感度阈值thresh ,用 Roberts算子进行边缘检测,它忽略了所有
13、小于阈值的边缘。当thresh为空时,自动选择阈值。5.Imclose 功能: 对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。用法: IM2 = imclose(IM,SE) IM2 = imclose(IM,NHOOD) 用法和 imopen 相同。6.imopen 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档功能 : 对图像实
14、现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。用法 :IM2 = imopen(IM,SE) IM2 = imopen(IM,NHOOD) IM2 = imopen(IM,SE)用结构元素 SE实现灰度图像或二值图像的IM 的形态开运算。SE可以是单个结构元素对象或者结构元素对象数组。IM2 = imopen(IM,NHOOD) 用结构元素strel(NHOOD)执行开运算。7.bwareaopen 功能:删除小面积对象格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下conn 使用 8 邻域。8.tic和
15、toc 函数这两个函数一般配合使用,tic表示计时的开始,toc 表示计时的结束。格式如:tic 任意表达式toc t=toc 9.fspecial 功能:用于建立预定义的滤波算子,其语法格式为:h = fspecial(type) h = fspecial(type,para) 其中 type 指定算子的类型,para 指定相应的参数;type 的类型有:1、average 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 26 页 - - - - - - - - - 实
16、用标准文案精彩文档averaging filter 为均值滤波,参数为hsize 代表模板尺寸,默认值为【3,3】 。diskcircular averaging filter 为圆形区域均值滤波,参数为radius代表区域半径,默认值为5. gaussianGaussian lowpass filter 为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为【3 3 】 ,sigma 为滤波器的标准值,单位为像素,默认值为0.5. prewitt Prewitt horizontal edge-emphasizing filter用于边缘增强,大小为【3 3 】 ,无参数sobel S
17、obel horizontal edge-emphasizing filter 用于边缘提取,无参数9. filter2 J = filter2(h,I);使用指定的滤波器h 对 I 进行滤波,结果保存在J 中10.bwarea 函数功能:计算二值图像中对象的总面积。调用格式:total = bwarea(BW) 估算二值图像BW中对象的总面积。返回的 total是一个标量,它的值大致地反映了和图像中 on 像素的个数。由于对于不同像素类型,度量标准不同,因此结果可能并不十分精确。 BW 可以是数值类型(整型、浮点型)或者逻辑类型。对于数值类型,像素值不为0 被视为 on。返回值total是
18、double 类型的。11.sum功能:函数求和sum(x,2) 表示矩阵 x 的横向相加,求每行的和,结果是列向量。而缺省的sum(x) 就是竖向相加,求每列的和,结果是行向量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档A0的结果是得到一个逻辑矩阵,大小跟原来的A一致,A中大于零的元素的位置置为1,小于等于零的位置置为0。所以横向求和以后,就是求A中每行大于零的元素个数。12.round 功能:四舍
19、五入调用格式: Y = round(X) 在 matlab 中 round 也是一个四舍五入函数。( 二) 对汽车图像进行图像转换、图像增强和边缘检测等。1. 载入车牌图像:I=imread(car1.jpg); figure(1),imshow(I);title(original image);% 将车牌的原图显示出来,结果如下:2. 将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title(gray image); figure(2),subplot(1,2,2),imhist(I1
20、);title(灰度图直方图);% 绘制灰度图的直方图结果如下所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档3. 用 roberts算子进行边缘检测:I2=edge(I1,roberts,0.18,both);%选择阈值0.18 ,用 roberts算子进行边缘检测figure(3),imshow(I2);title(roberts operator edge detection image);结果
21、如下:4. 图像实施腐蚀操作:se=1;1;1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title(corrosion image); 5. 平滑图像se=strel(rectangle,25,25);%构造结构元素以正方形构造一个se I4=imclose(I3,se);%图像聚类、
22、填充图像figure(5),imshow(I4);title(smothing image); 结果如下所示:6. 删除二值图像的小对象名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - 实用标准文案精彩文档 I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000 的部分figure(6),imshow(I5);title(remove the small objects); %用 imshow函数显示滤波后图
23、像结果如下所示:(三)车牌定位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:y for j=1:x if(myI(i,j,1)=1) % 如果 myI(i,j,1)即 myI 的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 % 则 Blue_y(i,1)的值加 1 Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计 end end 名师资料总结 -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数字的图像处理车牌识别课程设计matlab实现附源代码 2022 数字 图像 处理 车牌 识别 课程设计 matlab 实现 源代码
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内