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

合集下载

数字图像课程设计报告

数字图像课程设计报告

《数字图像处理》课程设计报告——手写阿拉伯数字的识别1、课程设计目的1)、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。

2)、掌握文献检索的方法与技巧。

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

2、方法综述字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。

本次实验是对手写的阿拉伯数字进行识别,主要步骤包括预处理模块(其中用到图像分割方法),特征提取和利用人工神经网络(具体运用BP 神经网络方法)进行数字的识别。

2.1图像分割:图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。

它是由图像处理到图像分析的关键步骤。

现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。

2.1.1基于阈值的分割方法灰度阈值分割[1]法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。

阈值分割方法实际上是输入图像f到输出图像g的如下变换:其中,T为阈值,对于物体的图像元素g(i,j)=l,对于背景的图像元素g(i,j)=0。

由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。

阈值确定后,将阈值与像素点的灰度值比较和像素分割可对各像素并行地进行,分割的结果直接给出图像区域。

阈值分割的优点是计算简单、运算效率较高、速度快。

在重视运算效率的应用场合(如用于硬件实现),它得到了广泛应用。

人们发展了各种各样的阈值处理技术,包括全局阈值、自适应阈值、最佳阈值等等。

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

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

电子科技大学数字图像处理课程设计课题名称数字图像处理院(系)通信与信息工程学院专业通信工程姓名学号起讫日期指导教师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为变换的灰度值。

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

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

《数字图像处理技术》课程设计报告设计题目:车牌识别系统班级:数媒姓名:学号:一、目的与要求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 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。

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

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

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)为傅里叶变换的逆变换得到的图像。

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

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

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

【设计要求】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范围内是一个单值单增函数。

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

数字图像处理的课程设计

数字图像处理的课程设计

数字图像处理的课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的数字化表示方法;2. 掌握图像处理的基本操作,如图像变换、滤波、增强和复原;3. 了解常见的图像分割和特征提取方法,并应用于实际问题;4. 掌握图像压缩的基本原理及常用算法。

技能目标:1. 能够运用图像处理软件进行基本的图像编辑和操作;2. 能够编写简单的数字图像处理程序,实现对图像的基本处理功能;3. 能够运用所学的图像处理方法解决实际问题,如图像去噪、图像增强等;4. 能够对图像进行有效的压缩,以适应不同的应用场景。

情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣和热情,激发其探索精神;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的实际操作能力,使其认识到理论与实践相结合的重要性;4. 引导学生关注图像处理技术在日常生活和各领域的应用,提高其科技素养。

课程性质:本课程为高年级选修课程,旨在使学生掌握数字图像处理的基本原理和方法,培养其实际应用能力。

学生特点:学生具备一定的数学基础和编程能力,对图像处理有一定了解,但尚未深入学习。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以实际应用为导向,提高学生的动手能力和创新能力。

通过本课程的学习,使学生能够达到上述课程目标,为未来进一步学习和研究打下坚实基础。

二、教学内容1. 数字图像基础:包括图像的数字化表示、图像质量评价、颜色模型等基本概念;- 教材章节:第1章 数字图像处理基础2. 图像增强:介绍直方图均衡化、图像平滑、锐化等增强方法;- 教材章节:第3章 图像增强3. 图像复原:涉及图像退化模型、逆滤波、维纳滤波等复原方法;- 教材章节:第4章 图像复原4. 图像分割与特征提取:包括阈值分割、边缘检测、区域生长等分割方法,以及特征点的提取和描述;- 教材章节:第5章 图像分割与特征提取5. 图像压缩:介绍图像压缩的基本原理,如JPEG、JPEG2000等压缩算法;- 教材章节:第6章 图像压缩6. 数字图像处理应用:分析图像处理在医学、遥感、计算机视觉等领域的应用案例;- 教材章节:第7章 数字图像处理应用教学进度安排:1. 数字图像基础(2学时)2. 图像增强(4学时)3. 图像复原(4学时)4. 图像分割与特征提取(6学时)5. 图像压缩(4学时)6. 数字图像处理应用(2学时)三、教学方法为提高教学效果,本课程将采用以下多样化的教学方法: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;}垂直翻转的效果图如下:水平镜像水平翻转是指将图像左右翻转地显示在屏幕上。

数字图像处理课程设计报告封面和书写格式

数字图像处理课程设计报告封面和书写格式

《数字图像处理》课程设计报告( 2011 - 2012学年第 2 学期)专业班级:遥感09-02班姓名:董朝朝学号:310905060206指导老师:刘春国---------------------------------------------- 实习成绩:教师评语:教师签名:年月日实验项目:均值滤波一、实验内容1.位图文件读取、显示和存储,通过自己搭建一个Visual C++应用工程的基本流程,创建了一个基于MFC的Visual C++数字图像处理平台,实现了位图文件的读写、显示、存储操作。

2.均值滤波算法的原理:均值滤波采用的主要方法为领域平均法。

基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。

我的具体做法:我用的是3*3的模板。

先把3*3的模板覆盖从开始的区域,然后在在其覆盖的区域中算出平均值。

在把算出来的平均值填写到中间的处理的像素上。

以此类推一步步的处理其他像素。

注明:在边缘化的像素没有做处理。

二、算法实现的主要内容1.打开消息函数代码:CString strFileName;static char szFilter[]="BMP文件(*.bmp)|*.bmp||";CFileDialog dlg(TRUE, "bmp", NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);if(dlg.DoModal()!=IDOK) return;strFileName=dlg.GetPathName();(this->GetDocument())->SetTitle(strFileName);if(!dib.LoadBmpFile(strFileName,m_pBitmap,m_dwHeight,m_dwWidth,m_flag))return;Invalidate(true);显示图像代码:RECT rectDoc;GetClientRect(&rectDoc);CSize pageSize(rectDoc.right, rectDoc.bottom);CSize lineSize(100,1);CSize docSize(0,0);RECT rect;GetClientRect(&rect);BYTE *pImageDisp = NULL;BITMAPINFO *pBmpInfo = NULL;//设置在指定设备内容中(显卡内存)的拉伸模式pDC->SetStretchBltMode(COLORONCOLOR);if(m_pBitmap){dib.TransToBmp(m_dwHeight, m_dwWidth, m_pBitmap, pImageDisp, m_flag);dib.CreateBITMAPINFO(pBmpInfo, m_dwHeight, m_dwWidth, m_flag);//拷贝内存数据到显示器StretchDIBits(pDC->GetSafeHdc(),rect.left, rect.top,m_dwWidth, m_dwHeight,0,0,m_dwWidth, m_dwHeight,pImageDisp,pBmpInfo,DIB_RGB_COLORS,SRCCOPY);docSize.cx = rectDoc.left + m_dwWidth;docSize.cy = rectDoc.top + m_dwHeight;}SetScrollSizes(MM_TEXT,docSize,pageSize,lineSize);if(pImageDisp) delete pImageDisp;if(pBmpInfo) delete pBmpInfo;保存函数代码:CString strFileName;static char szFilter[] = "BMP文件(*.bmp)|*.bmp||";CFileDialog dlg(false, "bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);if(dlg.DoModal() != IDOK) return;strFileName = dlg.GetPathName();if(!dib.WriteBmpFile(strFileName, m_pBitmap, m_dwHeight, m_dwWidth, m_flag)) return;均值滤波主要代码:void CMy123View::Onjunzhi(){BYTE *pData = new BYTE[m_dwWidth*m_dwHeight];BYTE *JUNZHI=new BYTE[m_dwWidth*m_dwHeight];memcpy(pData, m_pBitmap, m_dwWidth*m_dwHeight);DWORD i,j;int lineByte = (m_dwWidth * m_flag / 8 + 3) / 4 * 4;int pixelByte = m_flag/ 8;for(i = 1; i < m_dwHeight-1; i++){for(j = 1; j < m_dwWidth-1; j++){*(JUNZHI+i*lineByte+j*pixelByte)=(*(pData+i*lineByte+j*pixelByte)+ *(pData+(i-1)*lineByte+j*pixelByte)+ *(pData+(i+1)*lineByte+j*pixelByte)+*(pData+i*lineByte+(j-1)*pixelByte)+ *(pData+i*lineByte+(j+1)*pixelByte)+ *(pData+(i-1)*lineByte+(j-1)*pixelByte)+ *(pData+(i-1)*lineByte+(j+1)*pixelByte)+*(pData+(i+1)*lineByte+(j-1)*pixelByte)+ *(pData+(i+1)*lineByte+(j+1)*pixelByte))/9; } // TODO: Add your command handler code here}memcpy(m_pBitmap, JUNZHI, m_dwWidth*m_dwHeight);if(pData) delete []pData;Invalidate(TRUE);}三、处理结果原始图像均值滤波之后的图像四、实习体会通过本次的实习,我熟悉了均值滤波的算法的原理,通过用c++编程实现灰度图像均值滤波功能,我知道这种滤波是牺牲了图像的清晰度来达到处理噪声的目的,其主要应该用于椒盐噪声,在这次的实习中,我熟悉了C++的编程环境,培养了学习C++的兴趣,同时提高了自己的学习能力,自己解决问题的能力,为以后的更深一步的学习奠定了良好的基础,我更加想学好而且坚定信念一定能学好C++。

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

电子科技大学数字图像处理课程设计课题名称数字图像处理院(系)通信与信息工程学院专业通信工程姓名学号起讫日期指导教师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为变换的灰度值。

依次改变n的值为128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2的输出图像。

利用MATLAB®的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。

课题实现:该思路的MATLAB®源代码如下:in_photo=imread('lena.bmp');%读入图片“lena.bmp”,位置在matlab当前工作区路径下D:\TempProject\Matlab\Works for i = [128,64,32,16,8,4,2]syms(['out_photo',num2str(i)]);%利用for循环定义7个变量,作为不同灰度值分辨率的输出变量eval(['out_photo',num2str(i), '=histeq(in_photo,i)',';']);%histeq函数用于改变图像灰度值,用eval函数给变量循环赋值endfigure();set(figure(1),'NumberTitle','off','Name','图像的灰度级调整') ;%设置figure名称subplot(2, 4, 1); imshow(in_photo,[]); title('Orginal');subplot(2, 4, 2); imshow(out_photo128,[]); title('Gray value 128');subplot(2, 4, 3);imshow(out_photo64,[]);title('Gray value 64');subplot(2, 4, 4);imshow(out_photo32,[]);title('Gray value 32');subplot(2, 4, 5);imshow(out_photo16,[]);title('Gray value 16');subplot(2, 4, 6);imshow(out_photo8,[]);title('Gray value 8');subplot(2, 4, 7);imshow(out_photo4,[]);title('Gray value 4');subplot(2, 4, 8);imshow(out_photo2,[]);title('Gray value 2');%输出所有图形程序运行结果如下图:可以看出原图lena.bmp被转化为灰度值分辨率不同的7个图像。

课题二:噪声的叠加与频域低通滤波器应用设计要求:往图像中叠加不同类型的噪声,并设计一个频域低通滤波器来去除之。

设计思路:一、噪声叠加:首先需要在输入图片中叠加不同类型的噪声。

MATLAB®提供了imnoise函数用于在图像中加入噪声,调用格式如下:J = imnoise(I,type)J为叠加噪声后的图像,I为输入图像,type分为:'gaussian'(Gaussian white noise with constant mean and variance);'localvar'(Zero-mean Gaussian white noise with an intensity-dependent variance);'poisson'(Poisson noise);'salt & pepper'(On and offpixels);'speckle'(Multiplicative noise).二、低通频域滤波器算法原理空间域滤波和频率域滤波的基础都是卷积定理,这说明两个空间函数的卷积可通过计算两个傅里叶变换函数的乘积的逆变换得到;相反地,两个空间函数的卷积的傅里叶变换恰好等于两个函数傅里叶变换的乘积。

然而对于数字图像仅当f(x,y)和h(x,y)正确经过零填充后,表达式才严格有效。

故在进行傅里叶变换前需先进行填零操作。

经过上述分析,可得到傅里叶变换的基本步骤:(1)计算填充参数(2)利用填充参数进行傅里叶变换(3)根据type 生成传递函数H(x,y)(4)传递函数与傅里叶变换相乘(5)取G 的傅里叶逆变换实部常见的低通频域滤波器有三种,分别为:理想低通滤波器,n阶巴特沃茨低通滤波器和高斯低通滤波器。

三、低通频域滤波器在Matlab®中的实现结合傅里叶变换基本步骤和函数dftuv(M,N),在Matlab中实现低通频域滤波器的代码如下:function [g,F] = lpfilter(f,type)%函数参数:彩色图像f,低通滤波类型type课题实现:代码分为三部分:1. 用来实现二维数组的meshgrid 表示的函数dftuv.m ;2.低通滤波器lpfilter.m ;3.主函数///codebeginfunction [U,Y] = dftuv( X,N )%dftuv (M,N)来实现二维数组的meshgrid 表示u=0:(X-1);w=0:(N-1);idx=find(u>X/2);u(idx)=u(idx)-X;idy=find(w>N/2);w(idy)=w(idy)-N;[Y,U]=meshgrid(w,u);endfunction [g,F] = lpfilter(f,type)%函数参数:彩色图像f,低通滤波类型type%函数返回值:低通模糊图像g,低通频率图像F%D0 取填充后图像宽度的5%%当type 为'ideal' 时,表理想低通滤波器%当type 为' btw ' 时,表n 阶巴特低通沃兹滤波器%当type 为' gaussian ' 时,表高斯低通滤波器f=im2double(f);PQ=2*(size(f));%DFT 之前补零F=fft2(f,PQ(1),PQ(2));%-------------------[U,V]=dftuv(PQ(1),PQ(2));D=sqrt(U.^2+V.^2); %采用欧氏距离D0=0.05*PQ(2);% 设定距离初值n=5;switch(type)case'ideal'H=double(D<=D0);case'btw'H=1./(1+(D./D0).^(2*n));case'gaussian'H=exp(-(D.^2)./(2*(D0^2)));otherwiseerror('Unknown filter type.');end%-------------------G=H.*F;g=real(ifft2(G));%得到新图像g=g(1:size(f,1),1:size(f,2));%矩形修剪为初始大小endOriginal = imread('bank.bmp');X1 = imnoise(Original,'salt & pepper');%叠加椒盐噪声X2 = imnoise(Original,'gaussian',0,0.1);%叠加高斯噪声X3 = imnoise(Original,'poisson');%叠加poisson噪声X4 = imnoise(Original,'speckle');%叠加speckle噪声[g1,~] = lpfilter(X1,'gaussian');%lowpass-filter函数,低通滤波[g2,~] = lpfilter(X1,'btw');[g3,~] = lpfilter(X1,'ideal');[h1,~] = lpfilter(X2,'gaussian');[h2,~] = lpfilter(X2,'btw');[h3,~] = lpfilter(X2,'ideal');[i1,~] = lpfilter(X3,'gaussian');[i2,~] = lpfilter(X3,'btw');[i3,~] = lpfilter(X3,'ideal');[j1,~] = lpfilter(X4,'gaussian');[j2,~] = lpfilter(X4,'btw');[j3,F] = lpfilter(X4,'ideal');figure, imshow(Original)%显示原始图像set(figure(1),'NumberTitle','off','Name','Original') ;figure;%高斯低通滤波器滤波后的图像set(figure(2),'NumberTitle','off','Name','Noise & gaussian-filter') ; subplot(2, 4, 1); imshow(X1,[]); title('salt & pepper noise'); subplot(2, 4, 2); imshow(X2,[]); title('gaussian noise');subplot(2, 4, 3); imshow(X3,[]); title('poisson noise');subplot(2, 4, 4); imshow(X4,[]); title('speckle noise');subplot(2, 4, 5); imshow(g1,[]); title('lowpass-gaussian'); subplot(2, 4, 6); imshow(h1,[]); title('lowpass-gaussian'); subplot(2, 4, 7); imshow(i1,[]); title('lowpass-gaussian'); subplot(2, 4, 8); imshow(j1,[]); title('lowpass-gaussian');figure;%巴特沃兹低通滤波器滤波后的图像set(figure(3),'NumberTitle','off','Name','Noise & btw-filter') ; subplot(2, 4, 1); imshow(X1,[]); title('salt & pepper noise'); subplot(2, 4, 2); imshow(X2,[]); title('gaussian noise'); subplot(2, 4, 3); imshow(X3,[]); title('poisson noise');subplot(2, 4, 4); imshow(X4,[]); title('speckle noise');subplot(2, 4, 5); imshow(g2,[]); title('lowpass-btw');subplot(2, 4, 6); imshow(h2,[]); title('lowpass-btw');subplot(2, 4, 7); imshow(i2,[]); title('lowpass-btw');subplot(2, 4, 8); imshow(j2,[]); title('lowpass-btw');figure;%理想低通滤波器滤波后的图像set(figure(4),'NumberTitle','off','Name','Noise & ideal-filter') ; subplot(2, 4, 1); imshow(X1,[]); title('salt & pepper noise'); subplot(2, 4, 2); imshow(X2,[]); title('gaussian noise'); subplot(2, 4, 3); imshow(X3,[]); title('poisson noise');subplot(2, 4, 4); imshow(X4,[]); title('speckle noise');subplot(2, 4, 5); imshow(g3,[]); title('lowpass-ideal');subplot(2, 4, 6); imshow(h3,[]); title('lowpass-ideal');subplot(2, 4, 7); imshow(i3,[]); title('lowpass-ideal');subplot(2, 4, 8); imshow(j3,[]); title('lowpass-ideal');///code end程序运行结果截图:///原始图像///高斯低通滤波器处理///巴特沃茨低通滤波器处理///理想低通滤波器处理课题三:顶帽变换在图像阴影校正方面的应用设计要求:举例说明顶帽变换在图像阴影校正方面的应用。

相关文档
最新文档