《数字图像处理技术课程设计报告》

合集下载

《数字图像处理》课程设计报告

《数字图像处理》课程设计报告

1.课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。

2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。

2.课程设计内容及实现2.1、二维快速傅立叶变换:本项目的重点是:这个项目的目的是开发一个2-D FFT程序“包”,将用于在其他几个项目。

您的实现必须有能力:(a)乘以(-1),x + y的中心变换输入图像进行滤波。

(b) 一个真正的函数相乘所得到的(复杂的)的阵列(在这个意义上的实系数乘以变换的实部和虚部)。

回想一下,对相应的元件上完成两幅图像的乘法。

(c) 计算傅立叶逆变换。

(d) 结果乘以(-1)x + y的实部。

(e) 计算频谱。

基本上,这个项目实现了图。

4.5。

如果您正在使用MATLAB,那么您的傅立叶变换程序将不会受到限制,其大小是2的整数次幂的图像。

如果要实现自己的计划,那么您所使用的FFT例程可能被限制到2的整数次幂。

在这种情况下,你可能需要放大或缩小图像到适当的大小,使用你的程序开发项目02-04逼近:为了简化这个和以下的工程(除项目04-05),您可以忽略图像填充(4.6.3节)。

虽然你的结果不会完全正确,将获得显着的简化,不仅在图像的大小,而且在需要裁剪的最终结果。

由这种近似的原则将不会受到影响结果如下:主要代码f=imread('Fig4.04(a).jpg');H=imread('Fig4.04(a).jpg');subplot(3,2,1);imshow(f);title('(a)原图像');[M1,N1]=size(f);f=im2double(f);[M2,N2]=size(H);H=im2double(H); %把灰度图像I1的数据类型转换成转换成双精度浮点类型for x=1:M1for y=1:N1f(x,y)=(-1)^(x+y)*f(x,y); %用(-1)^(x+y)乘以输入图像,来实现中心化变换endendF=fft2(f); %使用函数fft2可计算傅立叶变换subplot(3,2,3);imshow(F);title('(b)傅立叶变换的图像');if(M2==1)&&(N2==1)G=F(x,y)*H(x,y);elseif((M1==M2)&&(N1==N2))for x=1:M1for y=1:N1G(x,y)=F(x,y)*H(x,y);endendelseerror('输入图像有误','ERROR');end %通过两个图像的乘法程序,实现对相应元素的相乘g=ifft2(G);subplot(3,2,4);imshow(g);title('(c)傅立叶逆变换的图像');for x=1:M1for y=1:N1g(x,y)=(-1)^(x+y)*g(x,y);endendg=real(g);S=log(1+abs(F)); %计算傅立叶幅度谱并做对数变换subplot(3,2,5);plot(S); %二维图像显示幅度谱title('(d)二维图像显示幅度谱');Q=angle(F); %计算傅立叶变换相位谱subplot(3,2,6);plot(Q);title('(e)二维图像显示相位谱'); %二维图像显示相位谱结果截图图1 傅里叶变换及频谱图结果分析:图1中(a)是原始灰度图像,对原图进行傅里叶变换,用(-1)^(x+y)乘以输入图像,来实现中心化变换得到(b),(c)为傅里叶变换的逆变换得到的图像。

电子科技大学-数字图像处理-课程设计报告

电子科技大学-数字图像处理-课程设计报告

电子科技大学数字图像处理课程设计课题名称数字图像处理院(系)通信与信息工程学院专业通信工程姓名学号起讫日期指导教师2015年12月15日目录摘要: (03)课题一:图像的灰度级分辨率调整 (04)课题二:噪声的叠加与频域低通滤波器应用 (06)课题三:顶帽变换在图像阴影校正方面的应用 (13)课题四:利用Hough变换检测图像中的直线 (15)课题五:图像的阈值分割操作及区域属性 (20)课题六:基于MATLAB®的GUI程序设计 (23)结束语: (36)参考文献: (37)基于MATLAB®的数字图像处理课题设计摘要本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;并通过七个课题实例,借助MATLAB®的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB®的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。

关键词:灰度值调整噪声图像变换MATLAB® GUI设计课题一:图像的灰度级分辨率调整设计要求:128,64,32,16,8,4,2,并在同一个figure窗口将图像的灰度级分辨率调整至{}上将它们显示出来。

设计思路:灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。

由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。

随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。

MATLAB®提供了histeq函数用于图像灰度值的改变,调用格式如下:J = histeq(I,n)其中J为变换后的图像,I为输入图像,n为变换的灰度值。

数字图像处理课程设计报告

数字图像处理课程设计报告

数字图像处理课程设计报告课设题目:运动目标的跟踪学院:信息科学与工程学院专业:电子与信息工程班级:0902501班姓名:学号:指导教师:赵占锋周志权于海雁哈尔滨工业大学(威海)2012 年11月12日目录一. 课程设计任务 (1)二. 课程设计原理及设计方案 (1)三. 课程设计的步骤和结果 (4)四. 课程设计总结 (8)五. 设计体会 (8)六. 参考文献 (10)一. 课程设计任务在很多应用中都要对运动目标进行跟踪。

比如激光制导中,弹载摄像机不断检测指向目标的激光束,根据激光光点的位置来修正飞行方向。

使用图像获取工具箱,从摄像机获取视频图像到matlab中,这些图像可以用来跟踪摄像机视场中的目标。

建立一个图像跟踪的演示程序,用于跟踪的目标可由一个激光笔产生的激光点代替。

要求完成功能:1、对连接在计算机上的视频获取设备进行控制;2、显示动态视频画面;3、对画面中内容进行运动目标检测;4、输出检测到的激光点的位置信息;5、设计软件界面。

- 1 -二. 课程设计原理及设计方案2.1运动目标的检测运动目标检测的方法主要有三类:光流法、帧差法和背景差法。

光流法由于其计算量大,算法复杂,一般不被直接应用于实时视频监控场合。

帧差法实时性好,但对物体的运动速度有一定的要求。

背景差法,相对于其他方法而言简单易于实现,能够很精确地提取出运动对象,但是由于场景的复杂性、不可预知性、以及各种环境干扰和噪声的存在,如光照的突然变化、实际背景图像中有些物体的波动、摄像机的抖动、运动物体进出场景对原场景的影响等,使得背景的建模和模拟变得比较困难。

我选择了帧差法。

帧差法利用了视频序列相邻帧之间的强相关性进行变化检测。

连续帧之间利用两帧图像的灰度差分析视频图像序列的运动特性,通过比较目标在两个不同时刻的画面,识别由于物体运动而造成的区域差别。

在实际计算过程中,差分是指将两帧相邻目标图像逐点相减,形成差分图,在差分图中如果差分值大于给定的阀值,则相应的像素取,由此产生非零区,利用非零区就可以检测出运动目标。

数字图像处理课程设计报告

数字图像处理课程设计报告

数字图像处理设计报告【设计目的】配合《数字图像处理》课程的教学,使学生能巩固和加深对数字图像处理基础理论和基本知识的理解;掌握使用图像处理软件处理图像基本思想和方法;提高学生对图像处理方面的实际问题的应对能力并将所学知识在实践中巩固。

【设计要求】1.按照题目的要求,简要介绍算法,并对算法进行分析;2.用MATLAB完成算法代码(不能利用MATLAB自身的图像处理函数完成具体算法,读写和显示可以利用MATLAB函数),注释要清晰;3.给出代码运行的结果,并对结论进行总结;4.每人可选一个给出的题目或自己感兴趣的题目,按照上面要求上交报告,内容不得少于5页A4纸。

【所选题目】用直方图均衡化一幅8位的灰度图像【设计环境】MATLAB7.1,所选图片为彩色动画图片,大小为1024*666*24b【算法介绍和分析】1、算法概述:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。

直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

2、算法分析:直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。

设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。

在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。

这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。

数字图像处理课程设计报告

数字图像处理课程设计报告

一.课程题目:Photoshop + 直方图均衡化二.设计目的:数字图像处理课程设计是在完成数字图像处理的相关理论的学习后,进行的综合性训练课程,其目的主要包括:1、使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法;2、增强学生应用VC++编写数字图像处理的应用程序及分析、解决实际问题的能力;3、尝试将所学的内容解决实际工程问题,培养学生的工程实践能力,提高工科学生的就业能力三.设计内容:( 备注:该课程设计是基于之前数字图像处理实验,其中新加入的功能涉及到之前的基础,需要调用其处理函数,故保留其实验功能并进行扩展。

设计中涉及的一些知识已经在实验时介绍过,此处只对新加入功能进行分析)打开图像—打开一幅BMP格式的图像,若打开的不是该格式,提示错误。

代码略;图像平滑—主要用来修饰边缘过于清晰,或者对比度过于强烈的图像,通过取平均值减少相邻像素间的差异,从而产生平滑的过渡效果。

作用:削弱相邻像素间颜色的差异,达到柔化图像的效果。

代码略;图像锐化—主要用来通过增强相邻像素间的对比度,使图像具有明显的轮廓,并变得更加清晰。

效果与“图像平滑”的效果正好相反。

代码略;底片化---底片上的颜色与色彩鲜艳的照片的颜色是正好相反的,即反色。

代码略;二值化—主要是用来将整幅图像呈现出明显的黑白效果。

代码略;垂直翻转垂直翻转是指把定义好的图像区域上下翻转地显示在屏幕上。

器方法是保持每行像素信息不变,改变行的顺序,将第一行的像素与倒数第一行的像素进行互换,第二行的与倒数第二行的互换……依次类推,从而实现图像的垂直翻转。

具体算法如下:for(i=0;i<nh/2;i++)for(j=0;j<nw;j++){temp=m_dib.m_pdata[i*nh+j];m_dib.m_pdata[i*nh+j]=m_dib.m_pdata[j+(nh-i-1)*nw];m_dib.m_pdata[j+(nh-i-1)*nw]=temp;}垂直翻转的效果图如下:水平镜像水平翻转是指将图像左右翻转地显示在屏幕上。

数字图像处理课设报告

数字图像处理课设报告

数字图像处理课程设计报告细胞识别目录第一部分1、实验课题名称----------------------------------------------------------------------------------32、实验目的----------------------------------------------------------------------------------------33、实验内容概要----------------------------------------------------------------------------------3 第二部分1、建立工程文件----------------------------------------------------------------------------------32、图像信息获取----------------------------------------------------------------------------------43、如何建立下拉菜单----------------------------------------------------------------------------64、标记Mark点------------------------------------------------------------------------------------65、二值化---------------------------------------------------------------------------------------------96、填洞------------------------------------------------------------------------------------------------97、收缩------------------------------------------------------------------------------------------------108、获取中心点--------------------------------------------------------------------------------------119、细胞计数-----------------------------------------------------------------------------------------1310、All-steps-----------------------------------------------------------------------------------------1311、扩展功能---------------------------------------------------------------------------------------14 第三部分12、各步骤结果和错误举例--------------------------------------------------------------------16 第四部分13、心得体会----------------------------------------------------------------------------------------22 第一部分1、实验课题:细胞识别2、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。

数字图像处理课程设计实验报告

数字图像处理课程设计实验报告

江南大学《数字图像处理技术》课程设计报告设计题目:数字图像处理系统班级:数字媒体班姓名:学号:指导老师:日期:2013.7.2一、课程设计目的要求:1、提高分析图像处理问题的能力,进一步巩固在《数字图像处理技术》课程中所学的基本原理与方法。

2、掌握并使用一门计算机语言,进行数字图像处理的应用设计。

二、设计的内容:根据本次课设完成的系统的主要功能如下:利用matlab的GUI 程序设计一个简单的图像处理程序,含有如下基本功能:1、图像的读取、存储、剪切和粘贴2、图像转化为灰度图像3、图像大小的计算4、直方图均衡化规定化的计算5、图像求反、动态压缩6、直接灰度调整7、空域滤波(均值、中值、对比度增强滤波)8、非线性锐化滤波(log滤波、prewitt滤波、sobel卷积、sobel滤波)9、频域增强(高通、低通滤波)三、总体方案设计:(1)、软件的总体设计界面布局如下图:系统的总体设计界面主要分为2个区域:显示区域和操作区域。

显示区域:在原始图像的基础上显示效果图。

操作区域:通过功能菜单实现图像的各种处理。

设计完成后运行的软件界面如下:(2)、功能模块的划分:1、图像的读取、存储、退出2、编辑(还原、剪切、粘贴)3、图像(图像大小的计算、旋转、直方图均衡化规定化的计算、图像求反、动态压缩)4、滤波(直接灰度调整、空域滤波、非线性锐化滤波、频域增强)(3)、系统运行环境:Windows 7 or SP1、Windows Vista SP2、Windows XP SP3、Windows XP x64 Edition SP2、Windows Server 2008 SP2 or R2、Windows Server 2003 R2 ,CPU要求:X86架构且支持SSE2指令集,硬盘空间:典型安装需要3-4G,内存:最低1G,推荐2G。

(4)、选用的工具:matlab7.0,win7X64(5)、主要实现功能的原理:直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。

数字图像处理课程设计(实验报告)

数字图像处理课程设计(实验报告)

上海理工大学计算机工程学院实验报告实验名称红细胞数目统计课程名称数字图像处理姓名王磊学号0916020226 日期2012-11-27 地点图文信息中心成绩教师韩彦芳一、设计内容:主题:《红细胞数目检测》详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。

二、现实意义:细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。

三、涉及知识内容:1、中值滤波2、开运算3、闭运算4、二值化5、贴标签四、实例分析及截图效果:(1)代码如下:1、程序中定义图像变量说明(1)Image--------------------------------------------------------------原图变量; (2)Image_BW-------------------------------------------------------值化图象;(3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果;(5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像;2、实现代码:%-------图片前期处理-------------------%第一步:读取原图,并显示A = imread('E:\红细胞3.png');Image=rgb2gray(A); %RGB转化成灰度图figure,imshow(Image);title('【原图】');%第二步:进行二值化Theshold = graythresh(Image); %取得图象的全局域值Image_BW = im2bw(Image,Theshold); %二值化图象figure,imshow(Image_BW);title('【初次二值化图像】');%第三步二值化图像进行中值滤波Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title('【中值滤波后的二值化图像】');%第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title('【进行“或”运算优化图像效果】');%第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’%方便下面的操作Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title('【优化后二值化图象取反】');%第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title('【已填充背景色的二进制图像】');%第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');%-------------开始计算细胞数--------------------[Label Number]=bwlabel(Open_Image_BW,8) %初步取得细胞个数Array = bwlabel(Open_Image_BW,8); %取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i); %获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc); %取得vc数组的元素的个数Sum([i])=Num; %将元素个数存入Sum数组EndSumN = 0;%假如Sum数组中的元素大于了400,表示有两个细胞相连,像素点较多,即分为两个细胞数for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endend%------------------统计最终细胞数-----------Number = Number+N3、运行效果截图:第一步:读取原图,并显示A = imread('E:\红细胞3.png ');Image=rgb2gray(A);figure,imshow(Image);title(' 【原图】');第二步:进行二值化Theshold = graythresh(Image);%取得图象的全局域值Image_BW = im2bw(Image,Theshold);%二值化图象figure,imshow(Image_BW);title(' 【初次二值化图像】');第三步:进行二值化图像Image_BW_medfilt= medfilt2(Image_BW,[13 13]); figure,imshow(Image_BW_medfilt);title(' 【中值滤波后的二值化图像】');第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title(' 【进行“或”运算优化图像效果】');第五步:优化后二值化图象取反,保证:'1'为'白色',0'为'黑色'Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title(' 【优化后二值化图象取反】');第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title(' 【已填充背景色的二进制图像】');第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');第八步:开始计算细胞数[Label Number]=bwlabel(Open_Image_BW,8)%初步取得细胞个数Array = bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc);%取得vc数组的元素的个数Sum([i])=Num;%将元素个数存入Sum数组endSumN = 0;-----假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数---for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N %----统计最终细胞数第九步:最终检测结果:四、算法分析(1)中值滤波利用中值滤波可以对图像进行平滑处理。

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

《数字图像处理技术》课程设计报告设计题目:车牌识别系统班级:数媒姓名:学号:一、目的与要求1、提高分析图像处理问题的能力,进一步巩固在《数字图像处理技术》课程中所掌握的基本原理与方法。

2、掌握并使用一门计算机语言,进行数字图像处理的应用设计。

二、设计的内容1、主要功能:牌照图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等。

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

三、总体方案设计车牌识别的最终目的就是对车牌上的文字进行识别。

主要应用的为模板匹配方法。

因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU要求主频在600HZ及以上,内存在128MB及以上。

系统可以运行于Windows98、Windows2000或者Windows XP操作系统下,程序调试时使用matlab。

1、功能模块的划分:(1)预处理及边缘提取:图象的采集与转换,边缘提取。

(2)牌照的定位和分割:牌照区域的定位,牌照区域的分割,车牌进一步处理。

(3)字符的分割与归一化:字符分割,字符归一化。

(4)字符的识别2、具体功能实现的原理以及流程图:1、预处理及边缘提取预处理及边缘提取流程图(1)图象的采集与转换:考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色 B 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。

因为蓝色(255,0,0)与白色(255,255,255)在 B 通道中并无区分,而在G、R 通道或是灰度图象中并无此便利。

同理对白底黑字的牌照可用R 通道,绿底白字的牌照可以用G 通道就可以明显呈现出牌照区域的位置,便于后续处理。

原图、灰度图及其直方图见图2与图3。

对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:G=0.110B+0.588G+0.302R (1)G=3RGB++(2)原图和灰度直方图2、边缘提取:边缘是指图像局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。

所以在此我们要对图像进行边缘检测。

图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要的。

增强图象对比度度的方法有:灰度线性变换、图象平滑处理等。

3、牌照的定位和分割:牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。

由于牌照图象在原始图象中是很有特征的一个子区域,确切说是水平度较高的横向近似的长方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。

(1)牌照区域的定位牌照图象经过了以上的处理后,牌照区域已经十分明显,而且其边缘得到了勾勒和加强。

此时可进一步确定牌照在整幅图象中的准确位置。

对图像进行腐蚀去除杂质通过计算寻找X 、Y 方向车牌区域完成车牌定位对分割出的车牌做进一步处理腐蚀后图像平滑图像的轮廓从对象中移除小对象后图像(2)牌照区域的分割对车牌的分割可以有很多种方法,本程序是利用车牌的彩色信息的彩色分割方法。

根据车牌底色等有关的先验知识,采用彩色像素点统计的方法分割出合理的车牌区域,确定车牌底色蓝色RGB 对应的各自灰度范围,然后行方向统计在此颜色范围内的像素点数量,设定合理的阈值,确定车牌在行方向的合理区域。

然后,在分割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。

行方向区域和最终定位出来的车牌(3)车牌进一步处理:裁剪出来的车牌的进一步处理过程图4:字符的分割与归一化字符分割与归一化流程图1、字符分割与归一化在汽车牌照自动识别过程中,字符分割有承前启后的作用。

它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。

字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。

一般分割出来的字符要进行进一步的处理,以满足下[m ,n]=size (d ),逐排检查有没有白色像素点,设置1<=j<n-1,若图像两边s (j )=0,则切割,去除图像两边多余的部分切割去图像上下多余的部分根据图像的大小,设置一阈值,检测图像的X 轴,若宽度等于这一阈值则切割,分离出七个字符归一化切割出来的字符图像的大小为40*20,与模板中字符图像的大小相匹配一步字符识别的需要。

但是对于车牌的识别,并不需要太多的处理就已经可以达到正确识别的目的。

在此只进行了归一化处理,然后进行后期处理。

5、字符的识别四、各个功能模块的主要实现程序(由于以上已有截图所以不全部展示)分割d=qiege(d); [m,n]=size(d);figure,subplot(2,1,1),imshow(d),title(n) k1=1;k2=1;s=sum(d);j=1; while j~=nwhile s(j)==0 j=j+1; end k1=j;while s(j)~=0 && j<=n-1 j=j+1;建立自动识别的代码表读取分割出来的字第一个字符与模板中的汉字模板进行匹配第二个字符与模板中的字母模板进行匹配后5个字符与模板中的字母与数字模板进行匹配 待识别字符与模板字符相减,值越小相似度越大,找到最小的一个即为匹配的最好的 识别完成,输出此模板对应值endk2=j-1;if k2-k1>=round(n/6.5)[val,num]=min(sum(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0; % 分割endend% 再切割d=qiege(d);% 切割出 7 个字符% 滤波h=fspecial('average',3);d=im2bw(round(filter2(h,d)));imwrite(d,'4.均值滤波后.jpg');figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后')% 膨胀或腐蚀% se=strel('square',3); % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀% 'line'/'diamond'/'ball'...se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵[m,n]=size(d);if bwarea(d)/m/n>=0.365d=imerode(d,se);elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'5.膨胀或腐蚀处理后.jpg');figure(8),subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后')liccode=char(['0':'9' 'A':'Z' '苏豫陕鲁']); %建立自动识别字符代码表SubBw2=zeros(40,20);l=1;for I=1:7ii=int2str(I);t=imread([ii,'.jpg']);SegBw2=imresize(t,[40 20],'nearest');if l==1 %第一位汉字识别kmin=37;kmax=40;elseif l==2 %第二位A~Z 字母识别kmin=11;kmax=36;else l>=3 %第三位以后是字母或数字识别kmin=1;kmax=36;endfor k2=kmin:kmaxfname=strcat('字符模板\',liccode(k2),'.jpg');SamBw2 = imread(fname);for i=1:40for j=1:20SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);endend% 以上相当于两幅图相减得到第三幅图Dmax=0;for k1=1:40for l1=1:20if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 )Dmax=Dmax+1;endendendError(k2)=Dmax;endError1=Error(kmin:kmax);MinError=min(Error1);findc=find(Error1==MinError);Code(l*2-1)=liccode(findc(1)+kmin-1);Code(l*2)=' ';l=l+1;endfigure(10),imshow(dw),title (['车牌号码:', Code],'Color','b');五、课程设计总结与体会这学期我们学习了数字图像处理这门课程,在平时的实验课上老师发给我们的实验文件没有更加深入的研究,导致课设阶段并不是很顺利的进行,经过学习了解,我知道了数字图像处理技术在实际生活中的重要性,它是一门通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术,可以使很多实际问题变得智能化,比如车牌的识别,人脸的识别等,可以肯定的是这门技术在将来会去的更深入更广泛的应用。

本次课设参考了论坛上的资料,查阅了matlab的gui编程的书本,能够编写简单的系统界面,调用相关的程序。

但是此次课设做的还不够完善,系统程序不够完美,并不能完全正确的识别出每一张车牌图片,这也是还需要完善的地方。

相关文档
最新文档