数字图像处理演示系统(课程设计).doc

上传人:laozhun 文档编号:2391674 上传时间:2023-02-17 格式:DOC 页数:25 大小:855.50KB
返回 下载 相关 举报
数字图像处理演示系统(课程设计).doc_第1页
第1页 / 共25页
数字图像处理演示系统(课程设计).doc_第2页
第2页 / 共25页
数字图像处理演示系统(课程设计).doc_第3页
第3页 / 共25页
数字图像处理演示系统(课程设计).doc_第4页
第4页 / 共25页
数字图像处理演示系统(课程设计).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《数字图像处理演示系统(课程设计).doc》由会员分享,可在线阅读,更多相关《数字图像处理演示系统(课程设计).doc(25页珍藏版)》请在三一办公上搜索。

1、数字图像处理课程设计报告题 目: 数字图像处理演示系统 专 业: 信息与计算科学 学 号: 组 长: 指导教师: 成 绩: 二一 年 六 月 二十六 日 |一、课程设计目的数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。二、课程设计基本要求1、能加载和显示原始图像,显示和输出

2、处理后的图像;2、系统要便于维护和具备可扩展性;3、界面友好便于操作; 4、数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。三、分组情况;1、组长: :负责全过程进行及整理材料组员: :设计全过程的监督及协助、部分源程序代码的编写和整个源程序代码的整理。:图像分析及调试,信息的分类处理 :在书上查找相关概念内容四、简介;1、几何变换几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以

3、及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等2、图像增强 图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及

4、其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。五、 设计思想:1、图像处理演示系统实现工具的选择使用MATLAB软件进行界面设计及程序编写。2、 选择MATLAB软件原因之所以选择MATLAB工具是因为:MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实

5、际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定 了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成MN样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、J

6、PEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。3 系统结构框图图像处理系统文件 图 像增 强几何变换绘制直方图帮助打开保存平滑滤波增强锐化滤波增强图像的平移图像的旋转图像的缩放图像的翻转横轴翻转纵轴翻转六、图形用户界面设计GUI是实现人机交互的中介,可以通过它实现数据输入、处理和

7、输出。MATLAB提供了一个专门的GUI设计工具图形用户界面开发环境(GUIDE),使用该工具,可以快速完成GUI设计任务。利用MATLAB提供的有关数据,还可以创建工具栏控件和多种对话框。1、启动GUIDE 在命令窗口中键入guide,启动GUIDE,显示如下图所示的“GUIDE Quick Start” 对话框 。打开“GUIDE Quick Start”对话框,利用GUIDE 模板创建新的GUI,选择一个模板后,单机OK 按钮,在输出编辑器中打开GUI。如下:2、 输出编辑器 在GUIDE中打开GUI以后,它显示在输出编辑器中。输出编辑器是所有GUIDE工具的控制面板。 可以通过拖拉控件

8、来设计GUI,这些控件位于输出编辑器左侧的工具箱中,有按钮、弹出式菜单和坐标系等多种。也可以用输出编辑器设置GUI控件的基本属性。3 、GUIDE模板 “GUIDE Quick Start”对话框提供了几种基本类型的GUI模板。使用模板的好处是可以通过改模板来快速创建。选择一种模板以后,它的预览效果显示在右面的面板中。4、菜单编辑器 利用菜单编辑器,可以创建、设置、修改下拉式菜单和弹出式菜单。在GUIDE中单机工具栏上的按钮,或者选择“Tools”菜单中的“Menu Editor”选项,打开菜单编辑器的界面,如下图所示:上图中左上角第一个按钮用于创建下拉式菜单。用户可以通过单击它来创建下拉式主

9、菜单。第二个按钮用于创建下拉式主菜单的子菜单运行后效果如下:最终GUI运行效果图如下:首次运行后会自动生成zhankeUI.m和zhankeUI.fig两个文件,默认目录设在MATLAB安装目录下的work文件夹里,zhankeUI.m中存放的是GUI的相关编码,以及相关控件的回调函数,今后可以对其进行代码修改,添加,删除等操作,zhankeUI.fig是GUI的界面文件。今后主要是对zhankeUI.m文件里面代码的相关操作以实现相关功能!七 图像处理演示系统各功能的实现1、文件的打开与保存1.1文件的打开在主菜单“文件”的下拉菜单中,有个“打开”选项,在其回调函数中添加打开某个文件的相关代

10、码:fname,pname=uigetfile(*.bmp;*.jpeg;*.gif, Open the file)fname为将要打开文件的文件名,pname为将要打开文件的路径。Uigetfile函数中主要有两部分参数*.bmp;*.jpeg;*.gif是想要打开文件的格式,Open the file是生成文件选择打开对话框的标题,此段代码运行效果如下: 打开一幅图像从上图中选择需要进行操作的文件,将其打开以便后续操作 打开一幅图像后在界面窗口显示在打开回调函数中我希望同时对文件进行相关数据的读取,以便在今后的处理操作中可以方便的调用,读取完图像数据后在窗口中显示图像,相关代码如下:V=s

11、trcat(pname,fname); %将图像赋值给变量Vhandles.my_data1=V guidata(hObject,handles) %更新句柄数据axes(handles.axes7) %添加一坐标轴用来指定显示图像的区域imshow(V) %显示选取的图像 当执行以上代码时会有一种情况出现错误,那就是当我们进行“打开”文件操作时候,如上图 Open,在这里当我们没有选择文件,而将窗口强行关闭或选择了程序无法识别的文件格式时,命令窗口会提示错误,所以加入如下代码进行处理:if fname 5 returnend对打开的文件名长度进行判断,确定有文件打开时会进行下面的操作,当没有

12、文件时退出,整个回调函数如下:fname,pname=uigetfile(*.bmp;*.jpeg;*.gif,Open the file)L=length(fname)if fname hhh(q) temp=hhh(p); hhh(p)=hhh(q); hhh(q)=temp; end end end I_2(i,j)=hhh(5); end end 图像空域的平滑滤波处理结果2.2图像的锐化滤波处理1) 锐化滤波的作用:图像的平滑处理会使图像的边缘纹理信息受到损失,图像变得比较模糊。如果需要突出图像的边缘纹理信息,则可以通过锐化滤波器实现,它可以消除或减弱图像的低频分量从而增强图像中物体

13、的边缘轮廓信息,使得除边缘以外的像素点的灰度值趋向于零。2)锐化滤波原理 锐化滤波器是以对图像的微分运算或差分运算为基础。微分运算是求像素点灰度值的变化率,而图像内不同物体边缘处的像素点的灰度值往往变化比较明显,因此微分运算或差分运算可以起到增强边缘信息的作用。锐化算子: 0 -1 0 H = -1 4 -1 0 -1 03)实现方法:for i=1:m-2 for j=1:n-2 b(i+1,j+1)=abs(4*x(i+1,j+1)-x(i,j+1)-x(i+1,j)-x(i+1,j+2)-x(i+2,j+1); endend 模板锐化滤波结果3 图像的几何变换3.1 对图像进行平移1)图

14、像平移的作用: 将图像中的某点从一个位置(X,Y)移动到另外一个位置(X0,Y0),而使平移后的图像与原始图像完全相同。2)图像平移原理:图像的平移是图像变换中最简单的变换之一,其特点是平移后的图像与原图像完全相同,平移后新图像上的每一个点都可以在原图像中找到对应的点。若点A0(X0,Y0)进行平移后,被移到A(X,Y),其中X方向的平移量为X.Y方向的平移量为Y,那么点A(X,Y)的坐标为:X=X0+XY=Y0+Y操作中需要输入平移的横纵量,变量的输入代码如下prompt=请输入横向平移量;title=;ansa=inputdlg(prompt,title);x1=str2num(ansa1

15、); handles.my_data4=x1;prompt=请输入纵向平移量;title=;ansa=inputdlg(prompt,title);y1=str2num(ansa1);handles.my_data5=y1;guidata(hObject,handles)%上段代码中的x1,y1即为需要输入的横向平移量与纵向平移量执行后出现如图界面:3)实现方法:for x=1:w for y=1:h PosSourceX=uint16(x+x1); PosSourceY=uint16(y+y1);if(PosSourceXw) | (PosSourceYh) if (xx.BitDepth=

16、 =24) Transfor(x, y,1:3) = uint8(1); else Transfor(x, y) = uint8(1); end else if (xx.BitDepth= =24)Transfor(x,y,1:3) = BmpImage(PosSourceX,PosSourceY,1:3); else Transfor(x,y) = BmpImage(PosSourceX,PosSourceY); end end end end figure; imshow(Transfor)%(PosSourceX和 PosSourceY是平移后坐标点,Transfor为平移后图片) 图像

17、的平移结果3.2 对图像进行缩放1)图像缩放的作用: 对图像进行缩小和放大的处理,可分别对其宽和高的缩放量进行设置。2)图像缩放原理:通常情况下,数字图像的比例缩放是将给定的图像在X方向和Y方向按相同比例缩放a倍。从而获得一副新的图像,如果X方向和Y方向缩放的比例不同,则图像的比例缩放会改变原始图像像素之间的相对位置,产生几何畸变。设原始图像中的点A0(X0,Y0)比例缩放后,在新图像中的对应点为A1(X1,Y1),则坐标关系可表示为:X1=aX0Y1=bX0 若比例缩放所产生的图像中的像素在原图像中没有相对应的像素点时,就需要进行灰度值的插值运算,一般有以下两种插值处理方法。(1) 直接赋值

18、为和它最相近的像素灰度值,这种方法称为最邻近插值法,该方法的主要特点是简单、计算量很小、但可能会产生马赛克现象;(2) 通过其他数学插值算法来计算相应像素点的灰度值,这类方法处理效果好,但运算量会有所增加对图像进行缩放时需要输入缩放的倍数,其相关代码如下:prompt=请输入X向缩放倍数:;title=;ansa=inputdlg(prompt,title);sx=str2num(ansa1);handles.my_data3=sx;guidata(hObject,handles)%上段代码中的sx即为下图中所输入的倍数同理可设置Y向缩放倍数sy.3)实现方法:m=xx.Width;n=xx.

19、Height;m1=m*sx;n1=n*sy;for h=1:m1;for w=1:n1;b(h,w)=i(round(h/sx),round(w/sy);%round 取最邻近整数 endend(m,n为原始图像的二维数据,m1,n1为缩放后的图像二维数据,xx为读取的原始图像信息) 图像的缩放结果3.3 对图像进行旋转1)图像旋转的作用:对图像进行任意角度的旋转。2)图像旋转原理:图像的旋转变换是几何学中研究的重要内容之一,一般情况下,图像的旋转变换是指以图像的中心为原点,将图像上的所有像素都旋转同一个角度的变换。图像经过旋转变换之后,图像的位置发生了改变,但旋转后,图像的大小一般会改变。

20、和平移变换一样,在图像旋转变换中既可以把转出显示区域的图像截去,又可以扩大显示区域的图像范围以显示图像的全部。设原始图像的任意点A0(X0,Y0)经过旋转角度以后到新的位置A(X,Y),为表示方便,采用极坐标形式表示,原始点的角度为。如下图所示 P r A(X,Y) r A0(X0,Y0) 根据极坐标与二维垂直坐标的关系,原始图像的点A0(X0,Y0)的X0和Y0坐标如下: X0=rcos Y0=rsin 旋转到新位置以后点A(X,Y)的坐标如下:X=rcos(-)=rcoscos+rsinsin=X0cos+Y0sinY=rsin(-)=rsincos-rcossin=-X0sin+Y0co

21、s图像的旋转变换用矩阵形式表示如下: X cos sin 0 X0 Y = -sin cos 0 Y0 1 0 0 1 1对图像进行旋转操作时需要输入旋转角度,相关实现代码如下:prompt=请输入旋转角度:;title=Angle Degrees;ansa=inputdlg(prompt,title);n=str2num(ansa1);handles.my_data2=n; % n为我们输入的角度值guidata(hObject,handles)V=handles.my_data1;n=handles.my_data2;G=imread(V);i=rgb2gray(G);pai=3.14;n

22、=pai*n/180; %将角度转换为直观的表示方法,便于直接输入度数。上段代码执行如下:3)实现方法:%计算原图像各像素的新坐标for indexX=0:(X-1) for indexY=0:(Y-1) ImageNew(round(indexX*cos(n)-indexY*sin(n)+round(abs(min(LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)+1,1+round(indexX*sin(n)+indexY*cos(n)+round(abs(min(LeftTop(1,2),LeftBottom(1,2)

23、,RightTop(1,2),RightBottom(1,2)=i(indexX+1,indexY+1); end end图4.3.3 图像旋转处理结果3.4对图像进行横轴翻转和纵轴翻转1)图像翻转的作用:实现图像的水平和垂直方向的翻转。2)图像翻转原理:垂直方向:yh-y+1水平方向:xw-x+1其中为h图像高,w为图像宽3)实现方法: if (xx.BitDepth=24)Transfor(x, y,1:3) = uint8(1); else Transfor(x, y) = uint8(1); end else if (xx.BitDepth=24)Transfor(x,y,1:3) =

24、 BmpImage(PosSourceX,PosSourceY,1:3); else Transfor(x,y) = BmpImage(PosSourceX,PosSourceY); end end(Transfor为翻转后图像,PosSourceX,PosSourceY为翻转后坐标) 图像的横轴翻转和纵轴翻转4、 图像直方图的绘制1) 图像直方图绘制的作用:实现图像直方图的均衡化。 2)图像直方图均衡原理:直方图均衡化是将原图像的直方图通过变换函数修正为均匀的直方图,然后按均衡直方图修正原图像。 图像均衡化处理后,图像的直方图是平直的,即各灰度级具有相同的出现频数,那么由于灰度级具有均匀的概

25、率分布,图像看起来就更清晰了。 首先假定连续灰度级的情况,推导直方图均衡化变换公式,令r代表灰度级,P ( r ) 为概率密度函数。 (注:r值已归一化,最大灰度值为1)。3)实现方法:V = handles.my_data1;xx=imfinfo(V);Bmpimage=imread(V);w=xx.Width; h=xx.Height;grey_grade=2xx.BitDepth;for i=1:grey_grade grey_friq(i)=0;endfor y=1:w for x=1:h for r=1:grey_grade if Bmpimage(x,y)=r grey_friq(

26、r)=grey_friq(r)+1; end end endendfigure;subplot(2,2,3);imshow(Bmpimage);subplot(2,2,1);for i=2:grey_grade line(i,i,0,grey_friq(i);endfor i=1:grey_grade sk(i)=0; p_eq(i)=0;endsk(1)=grey_friq(1)/(w*h);for i=2:grey_grade sk(i)=sk(i-1)+grey_friq(i)/(w*h);endfor i=1:h for j=1:w transfor(i,j)=uint8(sk(Bmp

27、image(i,j)*255+0.5); endendfor i=1:grey_grade p_eq(uint8(sk(i)*255+0.5)=p_eq(uint8(sk(i)*255+0.5)+grey_friq(i);endsubplot(2,2,2);for i=1:uint8(sk(i)*255+0.5) line(i,i,0,p_eq(i);endsubplot(2,2,4);imshow(transfor); 原图像直方图及均衡化效果八、 小结从通常意义上讲,数字图像处理技术更加普遍、可靠和准确,比起模拟方法,它们也更容易实现,专用的硬件被用于数字图像处理。今天,硬件解决方案被广泛

28、的用于视频处理系统,但商业化的图像处理任务基本上仍以软件形式实现,运行在通用个人电脑上,掌握进一步的图像处理技能对今后的学习和工作生活也都有其积极的影响!通过这个阶段的努力本图像处理演示系统已基本完成了对文件的打开保存,以及对图像的平移、图像的旋转、翻转、图像的缩放、图像的增强等功能的实现,由于个人水平和时间的有限,此次课程设计还存在许多想法没有很好的实现,扩展功能上也有一定的局限性,希望能在今后的学习中逐渐弥补和改善!九参考文献1苏金明,阮沈勇著.MATLAB实用教程(第二版)M . 北京:电子工业出版社 ,2008 . 22章毓晋著.图像处理和分析M . 北京:清华大学出版社 , 1999 . 33 美 Rafael C . Gonzalez . 数字图像处理(第二版)M . 阮秋琦 阮宇智,译.北京:电子工业出版社,2003 . 3.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号