资源描述:
《数字图像处理-程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、摘要本课程设计基于对matlab软件以及数字图象处理的学习,制作了一个GUI界面显示的图像处理框。可以实现对图像的读取、保存、显示,以及直方图均衡化、阈值化、小波分解、小波重构、加噪、去噪、平滑、锐化、边缘检测、图像分割等功能。通过对此课题的制作,对基于matlab的图像处理函数以及小波变换等工程及其应用有了更深入的了解。设计目的1、掌握有关数字图像的常用方法。2、掌握Matlab图形工具箱中常用函数的使用方法。3、能用Matlab完成简单的图像处理。4、学会使用Matlab的GUI界面。设计要求和设计指标1、编写基本的数字图象处理程序,包括图象的
2、读取、存储、显示、直方图均衡化、阈值化、小波分解、小波重构、加噪、去噪、平滑、锐化、边缘检测、图像分割等功能(可自己任意设计、增减功能)。2、尽量使用界面GUI(选做)。3、要求使用Matlab编制程序,写出报告。报告包括:设计思路、算法、源程序代码、运行示例、界面GUI等内容。GUI界面图设计思路一、设计GUI编辑界面1、在Matlab中CreateNewGUI,并保存为new.fig,即出现GUI编辑界面,如图一所示。2、在GUI编辑界面设置PushButton按钮,并在PropertyInspector里更改属性。依次命名为读取图片、保存图片
3、、退出、加噪、去噪、直方图均值化、阈值化、边缘监测、图像分割、理想平滑、锐化、一维离散小波变换、二维离散小波变换。3、点击Axes键,划定图像显示区域,如图一所示。二、添加图像处理程序1、选中“读取图片”按钮,右键点击viewcallbacks——callback,Editor框自动跳到该按钮对应的编程区——functionpushbutton1_Callback(hObject,eventdata,handles)。在注释的后面添加“读取图片”所需要的程序,如下:%选择图片路径[filename,pathname]=...uigetfile({'
4、*.jpg';'*bmp';'*gif'},'选择图片');%合成路径+文件名str=[pathnamefilename];globalI;%读取图片I=imread(str);%显示图片imshow(I);2、点击运行按钮,即挑出GUI运行界面,如图二所示。此时点击“读取图片”按钮,即可在指定路径添加图片,并在axes窗口中显示。3、依次按照前两个步骤,分别添加保存图片、退出、加噪、去噪、直方图均值化、阈值化、边缘监测、图像分割、理想平滑、锐化、一维离散小波变换、二维离散小波变换等程序,并分别调试运行即可。4、详细程序代码及运行示例及GUI界面见
5、附件。算法的应用在此次数字图像处理中运用了多种算法,甚至在有些功能,如锐化就运用了5种算法来实现。算法的具体说明与描述请见附件。边缘监测:edge函数、Soble边界探测器和Canny边界探测器分别进行边缘监测,用以比较。加噪:叠加均值为0,方差为0.02的高斯噪声以及叠加密度为0.04的椒盐噪声。去噪:先叠加密度为0.04的椒盐噪声,再加以去噪。平滑:运用低通滤波器锐化:分别采用空间高通滤波法以及四种频域高通滤波法来锐化。其中频域锐化分别采用理想高通滤波器、巴特沃斯高通滤波器、指数型高通滤波器和梯形高通滤波器来实现。5种算法同时输出图片,进行比较
6、。附主要程序代码如下:读取图片:%选择图片路径[filename,pathname]=...uigetfile({'*.jpg';'*bmp';'*gif'},'选择图片');%合成路径+文件名str=[pathnamefilename];globalQ;%定义全局变量Q%读取图片Q=imread(str);%显示图片imshow(Q);保存图片:globalQ;imwrite(Q,'my.png');%图片保存为my.png退出:close(gcf)直方图均值化:globalQ;figure,imhist(Q);I2=histeq(Q);figu
7、re,imshow(I2);阈值化将灰度图像转化为索引图像:globalQ;X=grayslice(Q,16);figure(1);imshow(X,hot(16));边缘检测:globalQ;RGB=Q;figure(1);imshow(RGB);Q=rgb2gray(RGB);figure(2);imshow(Q);colorbar('horiz');ED=edge(Q,'sobel',0.08);figure(3);imshow(ED);图像分割:globalQ;BW=roicolor(Q,128,255);figure(1),imshow(
8、Q)figure(2),imshow(BW);加噪:J1=imnoise(Q,'gaussian',0,0.02);%叠加