电子科技大学-数字图像处理-课程设计报告
数字图像课程设计报告
《数字图像处理》课程设计报告——手写阿拉伯数字的识别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++。
数字图像处理课程设计报告
本科综合课程设计报告题 目 ____________________________指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号_________________________________________________________ 院(部)____________________________专业________________班___2008___年 _12__月 _30__日数字图像处理演示系统信息科学与技术学院 通信工程 0521 主要内容1.1数字图像处理背景及应用数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。
目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。
因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。
本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。
1.2 图像处理演示系统设计要求能加载和显示原始图像,显示和输出处理后的图像;系统要便于维护和具备可扩展性;界面友好便于操作;1.3 图像处理演示系统设计任务数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。
1.3.1几何变换几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。
通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。
简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。
数字图像处理课设报告
数字图像处理课程设计报告细胞识别目录第一部分页脚内容11、实验课题名称----------------------------------------------------------------------------------32、实验目的----------------------------------------------------------------------------------------33、实验内容概要----------------------------------------------------------------------------------3第二部分1、建立工程文件----------------------------------------------------------------------------------32、图像信息获取----------------------------------------------------------------------------------43、如何建立下拉菜单----------------------------------------------------------------------------64、标记Mark点------------------------------------------------------------------------------------65、二值化---------------------------------------------------------------------------------------------96、填洞------------------------------------------------------------------------------------------------97、收缩------------------------------------------------------------------------------------------------108、获取中心点--------------------------------------------------------------------------------------119、细胞计数-----------------------------------------------------------------------------------------1310、All-steps-----------------------------------------------------------------------------------------1311、扩展功能---------------------------------------------------------------------------------------14第三部分12、各步骤结果和错误举例--------------------------------------------------------------------16页脚内容2第四部分13、心得体会----------------------------------------------------------------------------------------22第一部分1、实验课题:细胞识别2、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。
数字图像处理-课程设计报告
数字图像处理 - 课程设计报告1.实现目标
1.1算法功能
(针对什么问题,应用需求是什么,算法的所有功能)
1.2技术指标
2.研究现状分析
2.1国内外研究现状
(调研有代表性的算法)
2.2目前存在的问题
(分析现有算法的优缺点)
3.算法描述
3.1总体思路
3.2详细分析
3.3算法流程图
4.算法的实现
4.1功能函数和调用关系
(列举出编写的算法中所有的功能函数,及其调用关系)
4.2输入输出数据的格式
(采用的输入输出数据的格式)
4.3框架集成
(编写的算法DLL与Demo框架集成,单帧算法如何获取数据,多帧算法如何获取数据,如何返回结果)
(实验课上已经演示过,不会的同学来D406问)
4.4运行效果
(实际运行时截图)
5.实验结果分析
5.1实验结果
(给出测试结果)
5.2算法对比
(与其他算法对比,准确度、时间、空间…,以表格形式给出)
5.3 结果分析
6.展望
(总结本次课程设计,提出可能存在的改进点)。
数字图像处理课程报告
山东建筑大学课程设计说明书题目:视频监控中行人的检测课程:数字图像处理课程设计院(部):信息与电气工程学院专业:电子信息工程班级:电信112学生姓名:杨永林学号:2011081237指导教师:张运楚、杨红娟、张君捧完成日期:2014年11月目录摘要 (2)一、绪论 (3)课题研究背景及意义 (3)二、设计要求与目的 (4)三、视频监控中行人的检测与识别方案论证与选择 (4)3.1常用检测算法 (4)3.1.1背景消除法 (4)3.1.2光流场法 (4)3.1.3帧间差分法 (4)3.2空间域滤波器 (5)四、设计内容 (7)4.1背景减法运动目标检测 (7)4.2阈值的选取 (8)4.3形态学滤波 (8)4.4检测过程 (9)五、实验结果及分析 (10)六、总结与感谢 (12)参考文献 (13)附录1程序代码 (14)摘要视频监控在安检、交通、工业生产等方面得到了广泛的应用。
为了能实时分析、跟踪、判别监控对象,并在异常事件发生时提示、对视频监控中出现的行人进行检测显得尤为重要。
本文研究基于MATLAB的视频监控中的行人检测。
尤其是要从计算机视觉的角度出发构建一个对象检测器,对实时视频中的对象进行搜索并对它们进行检测。
从图像序列中找到关心的对象,即行人,从而确定图像区域中的行人。
本文的行人检测,即首先将行人检测出来,再对确定包含行人的图像进行处理。
关键词:MATLAB 视频监控行人检测一、绪论课题研究背景及意义在现代社会中,视频监控系统随处可见。
视频监控系统使人们的工作生活更加方便,更加安全,提高了效率。
然而,目前视频监控网络多数只停留在原始视频的录像阶段。
虽然有些系统具有移动侦测报警的功能,但实际监控任务大部分仍是由人工来完成。
随着视频监控规模逐渐扩大,依靠人工方式进行实时监控所暴露出来的局限性越发突出,既没有足够多数量的屏幕供观看,也不可能安排足够多的人员24小时盯着屏幕看,同时面临着海量视频数据检索的问题。
数字图像处理课程设计(实验报告)
数字图像处理课程设计报告姓名:x x学号:xxxxxxx班级: xxxxxxxxxxxxxxx设计题目:红细胞数目检测教师:xxxxxx老师提交日期: xx月xx日一、设计内容:主题:《红细胞数目检测》详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
二、现实意义:细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容: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、实现代码:Image = imread('红细胞5.jpg');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('【进行“或”运算优化图像效果】');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);rc = [r c];Num = length(rc);Sum([i])=Num;EndSumN = 0;for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N3、运行效果截图:第一步:读取原图,并显示Image = imread('红细胞5.jpg');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 %----统计最终细胞数第九步:最终检测结果:Number =92Sum =Columns 1 through 103011 313 1501 329 2238 795 758 1438 1087 1472Columns 11 through 201476 1465 2902 1128 1655 44 6261 1193 1306 215Columns 21 through 301112 1074 1177 930 493 1438 1121 1678 1210 1330Columns 31 through 401370 1369 1153 1284 1061 589 2146 1486 1335 1049Columns 41 through 501275 1101 1127 661 1530 1304 2861 90 1772 854Columns 51 through 601554 1582 1287 1362 81 2090 608 1736 853 1040Columns 61 through 702779 1500 246 77 1096 14819680 1404 783 724Columns 71 through 801439 626 1097 1823 1511 1223 1494 2494 1519 1329Columns 81 through 90733 1119 1205 1147 1295 1398 344 1634 324 1081Columns 91 through 92529 239Number =114四、算法分析(1)中值滤波利用中值滤波可以对图像进行平滑处理。
数字图像处理课程设计报告计划
数字图像处理课程设计报告姓名:学号:班级:设计题目:图像办理教师:赵哲老师提交日期:12 月29日一、设计内容:主题:《图像办理》详尽说明:对图像进行办理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行办理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行殊效办理(反色,实色混淆,色彩均衡,浮雕成效,素描成效,雾化成效等),二、波及知识内容:1、二值化2、各样滤波3、算法等三、设计流程图插入图片对图片进行办理二值化办理重复输出两幅图结束四、实例剖析及截图成效:运转成效截图:第一步:读取原图 , 并显示close all;clear;clc;% 清楚工作窗口 clc 清空变量 clear 封闭翻开的窗口 close allI=imread( '' );%插入图片赋给 Iimshow(I);%输出图 II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行 2 列第一幅图imhist(I1);%输出图片title(' 原图直方图' );%图片名称一,图像办理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate'); %imfilter实现线性空间滤波函数,I 图经过H 滤波办理,replicate频频复制q1=rgb2gray(q);imhist(q1);title(' 模糊图直方图' );二,图像办理锐化H=fspecial('unsharp'); %锐化滤波算子,unsharp不清楚的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title(' 锐化图直方图' );三,图像办理浮雕 ( 根源网络 )%浮雕图l=imread('' );f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',;%高斯噪声加入密度为的高斯乘性噪声imnoise噪声污染图像函数speckle斑点f1=im2double(f1);%把图像数据种类变换为双精度浮点种类h3=1/9.*[1 1 1;1 1 1;1 1 1];%采纳h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same' ); %卷积和多项式相乘same同样的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像办理素描 ( 根源网络 )f=imread('' );[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function[VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh,'replicate'); Ry = imfilter(double(f(:,:,1)), sv,'replicate'); Gx = imfilter(double(f(:,:,2)), sh,'replicate'); Gy = imfilter(double(f(:,:,2)), sv,'replicate'); Bx = imfilter(double(f(:,:,3)), sh,'replicate'); By = imfilter(double(f(:,:,3)), sv,'replicate'); gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = *(atan(2*gxy./(gxx-gyy+eps)));G1 = *((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = *((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));G1 = G1.^;G2 = G2.^;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG= sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);五,图像办理实色混淆 ( 根源网络 )%实色混淆I(I<=127)=0;%对像素进行办理,若值小于等于127 ,置 0 I(I>127)=255;%对像素进行办理,若值大于127 ,置 255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title(' 像素图直方图 ' );六,图像办理反色图f=imread('' );q=255-q;imshow(q);title('反色图');imhist(q1);title(' 反色图直方图' );七,图像办理上下对称A=imread('' );B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title(' 上下对称 ' );A=rgb2gray(A);figureimhist(A)title(' 上下对称直方图' );八,图像办理类左右对称C=imread('' );A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title(' 左右对称 ' );A=rgb2gray(A);figureimhist(A);title(' 左右对称直方图' );九,图像办理单双色显示a=imread('' );a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title(' 单色显示 ' );subplot(122);imshow(a5);title(' 双色显示 ' );a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title(' 单色显示直方图' );subplot(122);imhist(a5);title(' 双色显示直方图' );十,图像办理亮暗度调整a=imread('' );a1=*a;a2=2*a;figuretitle(' 暗图' );subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title(' 暗图直方图' ) subplot(122);imhist(q4);title(' 亮图直方图' )十一,图像办理雾化办理q=imread('' );m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%获取随机横坐标dj=j+round(mod(k,33));%获取随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点取代g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title(' 雾化办理图' );q=rgb2gray(a);figureimhist(q);title(' 雾化办理图直方图' );十二,图像办理高斯滤波I = imread('' );G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器办理图片imshow(Ig);title(' 高斯滤波 ' );I1=rgb2gray(Ig);figureimhist(I1);title(' 高斯滤波直方图' );十三,图像办理色彩均衡(来自网络)im=imread('' );im2=im; %储存元图像im1=rgb2ycbcr(im);%将 im RGB图像变换为 YCbCr空间。
数字图像处理课程设计实验报告
江南大学《数字图像处理技术》课程设计报告设计题目:数字图像处理系统班级:数字媒体班姓名:学号:指导老师:日期: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)、主要实现功能的原理:直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。
电子科技大学数字图像处理实验报告2
电子科技大学数字图像处理实验报告实验名称彩色图像处理实验序号学生姓名学生学号指导教师提交日期摘要本实验利用MATLAB软件,对彩色图像作了一些简单处理。
通过访问数字图像RGB三个通道的对应矩阵,改变数字图像的色彩,得到了原图像的补色图像。
并编写了图像的RGB模型与HSI模型相互转换的程序,实现了两个模型之间的互相转换。
为了得到HSI模型的补色,可将HSI模型转换为RGB模型,用RGB的反色来近似HSI的反色。
然后对彩色图像加入高斯与椒盐噪声,观察了加入噪声后RGB三个通道的图像效果,并通过算术均值滤波与中值滤波分别对三个通道进行去噪,达到对整个彩色图像的去噪。
最后证明了单个通道的噪声会通过到HSI的转换扩散到所有HSI图像上。
实验原理:1、三基色原理:人的眼睛就像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。
同样绝大多数单色光也可以分解成红(red)绿(green)蓝(blue)三种色光。
这是色度学的最基本原理,即三基色原理。
三种基色是相互独立的,任何一种基色都不能由其它两种颜色合成。
红绿蓝是三基色,这三种颜色合成的颜色范围最为广泛。
红绿蓝三基色按照不同的比例相加合成混色称为相加混色。
人眼接收色彩的方法:加法混色。
光色(红色+绿色)=黄色(yellow)光色(红色+蓝色)=紫红(magenta)光色(蓝色+绿色)=青色(cyan)印刷四色:减法呈色颜料(黄色+青色)=白色-红色-蓝色=绿色颜料(紫红+青色)=白色-红色-绿色=蓝色颜料(黄色+紫红)=白色-绿色-蓝色=红色颜料色另外会附加一个黑色,即cyan、magenta、yellow、black四色(cmyk)。
2、彩色图像表示方法:RGB图像:一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色像素点都是在特定空间位置的彩色图像相对应的红绿蓝三个分量。
RGB图像可以看成是一个有三幅灰度图像形成的“堆”,形成一幅RGB图像的三个图像常称为红、绿或蓝分量图像。
数字图象处理课程设计
数字图象处理课程设计一、课程目标知识目标:1. 学生能理解数字图像处理的基本概念,掌握图像的数字化过程及其相关参数。
2. 学生能够掌握图像处理的基本操作,如缩放、旋转、裁剪等,并理解其背后的算法原理。
3. 学生能够运用图像滤波和增强技术改善图像质量,并能够描述其效果差异。
4. 学生能够解释图像分割和特征提取的基本方法,并应用于实际问题。
技能目标:1. 学生能够操作图像处理软件,独立完成图像的采集、编辑和处理。
2. 学生能够运用所学知识,设计简单的图像处理程序,解决基础问题。
3. 学生能够通过案例分析和实验操作,培养实际应用图像处理技术的实践能力。
情感态度价值观目标:1. 学生通过数字图像处理的学习,培养对信息科学的兴趣和探究精神。
2. 学生在学习过程中,增强团队协作意识,学会共享和交流。
3. 学生能够认识到数字图像处理在生活、科研等领域的广泛应用,提升社会责任感和创新意识。
课程性质:本课程为信息技术领域的高阶课程,结合理论教学与实践操作,旨在提升学生的图像处理技能和问题解决能力。
学生特点:假定学生为高中二年级学生,具备基本的计算机操作技能和一定的数学基础。
教学要求:课程要求理论与实践相结合,强调学生在学习过程中的主动参与和实际动手能力,通过项目驱动和案例教学,提高学生的综合应用能力。
教学过程中注重分层指导,以满足不同学生的学习需求。
通过具体学习成果的分解,为教学设计和评估提供明确依据。
二、教学内容1. 数字图像基础:包括图像的构成、图像的数字化过程、图像文件的格式及特点。
- 理解像素、分辨率、颜色模型等基本概念。
- 掌握图像采样、量化及图像质量评价方法。
2. 图像处理基本操作:图像的几何变换、图像增强、图像去噪。
- 学习图像缩放、旋转、翻转等几何变换的原理和实现方法。
- 掌握直方图均衡化、图像平滑和锐化等增强技术。
3. 图像分割与特征提取:介绍图像分割的基本方法和特征提取技术。
- 学习边缘检测、区域生长等分割方法。
数字图像处理--图像处理课程设计 报告
《数字图像处理》课程设计1、课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
2、课程设计要求1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
尤其是对编程软件的使用有基本的认识。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
5.2实施要求1、理解各种图像处理方法确切意义。
2、独立进行方案的制定,系统结构设计要合理。
3、在程序开发时,则必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。
如果使用matlab来进行开发,要理解每个函数的具体意义和适用范围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。
4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。
用图像平均的方法消除噪声编程:J=imread('1036032.jpg');I = rgb2gray(J);[m,n]=size(I);II1=zeros(m,n);for i=1:16II(:,:,i)=imnoise(I,'gaussian',0,0.01);II1=II1+double(II(:,:,i));if or(or(i==1,i==4),or(i==8,i==16));figure;imshow(uint8(II1/i));endend迭加零均值高斯随机噪声图像4幅同类图像加平均8幅同类图像加平均16幅同类图像加平均用平滑滤波方法消除噪声编程:I=imread('001122.jpg');I=rgb2gray(I);J=imnoise(I,'gaussian',0,0.02);subplot(231),imshow(I);title('原图像');subplot(232),imshow(J);title('添加高斯噪声图像');k1=filter2(fspecial('average',3),J);k2=filter2(fspecial('average',5),J);k3=filter2(fspecial('average',7),J);k4=filter2(fspecial('average',9),J);subplot(233),imshow(uint8(k1));title('3*3模板平滑滤波'); subplot(234),imshow(uint8(k2));title('5*5模板平滑滤波'); subplot(235),imshow(uint8(k3));title('7*7模板平滑滤波'); subplot(236),imshow(uint8(k4));title('9*9模板平滑滤波');用中值滤波方法消除噪声编程:I=imread('1036032.jpg');I=rgb2gray(I);J=imnoise(I,'gaussian',0,0.01);subplot(231),imshow(I);title('原图像');subplot(232),imshow(J);title('添加高斯白噪声图像');k1=medfilt2(J);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);k4=medfilt2(J,[9 9]);subplot(233),imshow(k1);title('3×3模板中值滤波') subplot(234),imshow(k2);title('5×5模板中值滤波') subplot(235),imshow(k3);title('7×7模板中值滤波') subplot(236),imshow(k4);title('9×9模板中值滤波')用理想低通滤波方法消除噪声编程:I=imread('001122.jpg');J= rgb2gray(I);J=imnoise(J,'gaussian',0,0.02);subplot(331);imshow(J);J=double(J);f=fft2(J);g=fftshift(f);subplot(332);imshow(log(abs(g)),[]),color(jet(64)); [M,N]=size(f);n1=floor(M/2);n2=floor(N/2);d0=5;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h=1;elseh=0;endg(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(333);imshow(g);I=imread('001122.jpg');J= rgb2gray(I);J=imnoise(J,'gaussian',0,0.02);subplot(331);imshow(J);J=double(J);f=fft2(J);g=fftshift(f);subplot(332);imshow(log(abs(g)),[]),color(jet(64)); [M,N]=size(f);n1=floor(M/2);n2=floor(N/2);d0=15;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h=1;elseh=0;endg(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(334);imshow(g);I=imread('001122.jpg');J= rgb2gray(I);J=imnoise(J,'gaussian',0,0.02);subplot(331);imshow(J);J=double(J);f=fft2(J);g=fftshift(f);subplot(332);imshow(log(abs(g)),[]),color(jet(64)); [M,N]=size(f);n1=floor(M/2);n2=floor(N/2);d0=45;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h=1;elseh=0;endg(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(335);imshow(g);I=imread('001122.jpg');J= rgb2gray(I);J=imnoise(J,'gaussian',0,0.02);subplot(331);imshow(J);J=double(J);f=fft2(J);g=fftshift(f);subplot(332);imshow(log(abs(g)),[]),color(jet(64)); [M,N]=size(f);n1=floor(M/2);n2=floor(N/2);d0=65;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h=1;elseh=0;endg(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(336);imshow(g);用巴特沃斯低通滤波方法消除噪声I=imread('001122.jpg');I=rgb2gray(I);J=imnoise(I,'gaussian',0,0.04); subplot(121);imshow(J);title('高斯白噪声图像');J=double(J);f=fft2(J);g=fftshift(f);[M,N]=size(f);n=3;d0=20;n1=floor(M/2);n2=floor(N/2);for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2); h=1/(1+(d/d0)^(2*n));g(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122);imshow(g);title('巴特沃斯低通滤波');峰值信噪比PSNR程序:function result=psnr(in1,in2)in1=imread('a.jpg'); %a为原图像%in2=imread('b.jpg'); %b为调制之后的图像% z=mse(in1,in2);result=10*log10(255.^2/z);function z=mse(x,y)x=double(x);y=double(y);[m,n]=size(x);z=0;for i=1:mfor j=1:nz=z+(x(i,j)-y(i,j)).^2;endendz=z/(m*n);方法一图像平均的方法处理得到信噪比分别如下:ans =7.1689ans =7.2601ans =7.2789ans =7.2876方法二平滑滤波方法处理得到信噪比分别如下:ans =6.0426ans =6.0713ans =6.0955ans =6.1052方法三中值滤波方法处理得到信噪比分别如下:ans =7.1708ans =7.2487ans =7.2830ans =7.3065ans =7.3290方法四理想低通滤波方法处理得到的信噪比:ans =5.9024ans =6.3146ans =6.1266ans =6.0586ans =6.0479方法五巴特沃斯低通滤波方法处理得到的信噪比:ans =5.9042ans =6.2459。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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程序运行结果截图:///原始图像///高斯低通滤波器处理///巴特沃茨低通滤波器处理///理想低通滤波器处理课题三:顶帽变换在图像阴影校正方面的应用设计要求:举例说明顶帽变换在图像阴影校正方面的应用。