基于MATLAB的图形滤波器程序设计

上传人:仙*** 文档编号:33567583 上传时间:2021-10-18 格式:DOC 页数:16 大小:1.86MB
收藏 版权申诉 举报 下载
基于MATLAB的图形滤波器程序设计_第1页
第1页 / 共16页
基于MATLAB的图形滤波器程序设计_第2页
第2页 / 共16页
基于MATLAB的图形滤波器程序设计_第3页
第3页 / 共16页
资源描述:

《基于MATLAB的图形滤波器程序设计》由会员分享,可在线阅读,更多相关《基于MATLAB的图形滤波器程序设计(16页珍藏版)》请在装配图网上搜索。

1、华侨大学厦门工学院 MATLAB 课程设计报告题 目: 专业、班级: 学生姓名: 学 号: 指导教师: 2014 年 月 日MATLAB课程设计任务书系电子信息工程专业电子信息工程学生姓名陈嘉贤学号1102201005设计题目基于MATLAB的图形滤波器程序设计基本要求:1、 掌握MATLAB编程的原理和方法。2、 熟悉语音信号的基本特征和分析处理方法。3、 掌握数字信号处理的基本概念、理论和方法。4、 熟练运用MATLAB设计合适的IIR数字滤波器。主要内容:学习掌握数字图像处理中的图像滤波特点,并了解MATLAB语言中的相关函数,设计程序实现各种图像滤波功能以及一些图片处理。设计要求:自行

2、编写算法,并进行调试,最终实现图像滤波的数字图像处理功能。学有余力的情况下,可以考虑采用图形用户界面(GUI)的方法实现。目录内容4一、设计内容4二、设计要求4三、方案论证与设计原理描述4四、设计结果51.GUI程序的设计:6(1)调整亮度的程序设计:6(2)完成彩图到灰度图的转换:6(3)在开始菜单下的打开按钮的程序:6(4)保存按钮的程序:7(5)退出程序:7(6)添加噪声程序:7(7)还原按键的程序:8(8)翻转程序:82.结果8总结12参考文献12附录12内容一、设计内容学习掌握数字图像处理中的图像滤波特点,并了解MATLAB语言中的相关函数,设计程序实现各种图像滤波功能。二、设计要求

3、自行编写算法,并进行调试,最终实现图像滤波的数字图像处理功能。学有余力的情况下,可以考虑采用图形用户界面(GUI)的方法实现。三、方案论证与设计原理描述 图像滤波是改变图像质量,去除图像噪声的一种方法。主要包括空间域滤波和频域滤波。空间域滤波主要包括线性滤波、中值滤波、维纳滤波。 滤波运算matlab函数imfilter(A,H)(或filter2(B,X)),其中A/B为原始图像,H/X为滤波掩膜。fspecial(type,para):主要的三种类型: 1、average:均值滤波,参数为hsize代表模板尺寸,默认值为【3,3】 2、gaussian:高斯低通滤波,有两个参数,hsize

4、表示模板尺寸,默认值为【3 3】,sigma为滤波器的标准值,单位为像素,默认值为0.5. 3、laplacian :拉普拉斯算子,参数alpha用于控制算子形状,取值范围为【0,1】,默认值为0.2. 基本函数 1. imread imread函数用于读入各种图像文件,如:a=imread(e:w01.jpg) 注:计算机E盘上要有w01相应的.jpg文件。 2. imfinfo imfinfo函数用于读取图像文件的有关信息,如:imfinfo(e:w01.jpg) 3. rgb2gray rgb2gray()函数用于把真彩图转换为灰度图 4. 4. imshow imshow函数用于灰度图

5、像文件的显示,如: i=imread(e:w01.jpg); imshow(i); 1. imnoise imnoise函数用于对图像生成模拟噪声,如: i=imread(e:w01.jpg); j=imnoise(i,gaussian,0,0.02);%模拟高斯噪声 5. 5. fspecial fspecial函数用于产生预定义滤波器,如: h=fspecial(sobel);%sobel水平边缘增强滤波器 h=fspecial(gaussian);%高斯低通滤波器 h=fspecial(laplacian);%拉普拉斯滤波器 h=fspecial(log);%高斯拉普拉斯(LoG)滤波器

6、 h=fspecial(average);%均值滤波器 6. 中值滤波 medfilt2函数用于图像的中值滤波,如: i=imread(e:w01.jpg); j=medfilt2(i); 加入高斯噪声比的方式 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。 MATLAB中为图片加高斯噪声的语句是 (1) J = imnoise(I, gaussian); (式3-1) (2) J = imnoise(I, gaussian,parameters); (式3-2) (3) J=imnoise(I, gaussian,m,v); (式3-3) 其中I为原图象的灰度矩阵,J为加

7、噪声后图象的灰度矩阵一般情况下用 (式3-1)表示即可,(式3-2)中表示是允许修改参数,而(式3-1)中使用缺省参数;(式3-3)中对图像I加高斯噪声,均值为m,方差为v。 高斯平滑滤波器的原理 高斯滤波器是根据高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波器对去除服从正态分布的噪声有很好的效果。一维零均值高斯函数决定了高斯滤波器的宽度。对图像来说,常用二维零均值离散高斯函数做平滑滤波器,在高斯滤波器的设计中,高斯函数的最佳逼近由二项式展开的系数决定。由高斯函数的可分离性得到,二维高斯滤波器能用2个一维高斯滤波器逐次卷积来实现,一个沿水平方向,一个沿垂直方向。实际上,这种运算可以通过

8、使用单个一维高斯模板,对两次卷积之间的图像和最后卷积的结果图像进行转置来完成。 对较大的滤波器,二项式系数对大多数计算机来说都太多,但是,任意大的高斯滤波器都能通过重复使用小的高斯滤波器来实现。高斯滤波器的二项式逼近的可用高斯函数拟合二项式系数的最小方差来计算设计高斯滤波器的另一种途径是直接从离散的高斯分布中计算模板值。为了计算方便,一般希望滤波器权值是整数。在模板的一个角点处取一个值,并选择一个K使该角点处值为1。通过这个系数可以使滤波器整数化,由于整数化后的模板权值之和不等于1,为了保证图像的均匀灰度区域不受影响,必须对滤波模板进行权值规范化。 -四、设计结果i=imread(C:User

9、sAdministratorDesktops15.jpg); g0 =i(:,:,2); figure,imshow(g0); g1 = imnoise(g0,gaussian,0,0.01); figure,imshow(g1); h1=fspecial(gaussian,3,1); g2=imfilter(g1,h1,same); figure;imshow(g2);1.GUI程序的设计:(1)调整亮度的程序设计:function Untitled_6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=ge

10、timage;prompt=调整倍数;defans=1;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);y=imadjust(handles.img,p1);imshow(y);handles.img=y;guidata(hObject,handles); (2)完成彩图到灰度图的转换:function Untitled_7_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;x=rgb2gray(handles.img);imshow(x);h

11、andles.img=x;guidata(hObject,handles);(3)在开始菜单下的打开按钮的程序:function Untitled_2_Callback(hObject, eventdata, handles)filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,载入图像);if isequal(filename,0)|isequal(pathname,0)errordlg(没有选中文件,出错);return; elsefile=pathname,filename;global S S=file;x=imread(file);set

12、(handles.axes1,HandleVisibility,ON);axes(handles.axes1);imshow(x);set(handles.axes1,HandleVisibility,OFF);axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);end(4)保存按钮的程序:function Untitled_3_Callback(hObject, eventdata, handles)sfilename,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存

13、图像文件,untitled.jpg);Ifisequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath,sfilename;imwrite(handles.img,sfilefullname);else msgbox(你按了取消键,保存失败);end(5)退出程序:function Untitled_4_Callback(hObject, eventdata, handles)clc;close all;close(gcf);clear;clear;(6)添加噪声程序:function uipanel1_SelectionChangeFcn(h

14、Object, eventdata, handles)global Tstr=get(hObject,string);axes(handles.axes2);switch str case 高斯噪声T=getimage;prompt=输入高斯噪声1:,输入高斯噪声2;defans=0,0.02;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);p2=str2num(p2);f=imnoise(handles.img,gaussian,p1,p2);imshow(f);handles.img=f;guidata(hObject,handles);c

15、ase乘性噪声 T=getimage;prompt=输入乘性噪声1:;defans=0.02;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imnoise(handles.img,speckle,p1);imshow(f);handles.img=f;guidata(hObject,handles);end(7)还原按键的程序:function pushbutton1_Callback(hObject, eventdata, handles)global S axes(handles.axes2); y=imread(S); f=imsh

16、ow(y); handles.img=y; guidata(hObject,handles);(8)翻转程序:function pushbutton2_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt=旋转角度:;defans=0; p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imrotate(handles.img,p1,bilinear,crop);imshow(f);handles.img=f;guidata(hOb

17、ject,handles);2.结果原图:原图的灰度图像:高斯加噪的图:高斯去噪后的图像:GUI界面的设计:GUI界面运行图:调整亮度:形成灰度图:通过添加乘性噪声效果图:添加高斯噪声形成效果图:翻转效果:用户菜单设计:总结此次课程设计,要求对MATLAB进行基础的运用和掌握,虽然只是对MATLAB一小部分进行运用。以前,对MATLAB并没有太多的接触,仅仅是在第一次进行课程设计时利用MATLAB进行了图像的绘制和一些简单的处理函数。但经过这次我才发现,MATLAB软件功能真的很强大,它的图像工具箱几乎包括所有经典的图像处理方法,可以很方便的对图像进行处理。对于一款软件的应用还是应该自己动手实

18、际操作才会有深刻理解。通过这次的课程设计,我意识到了想要做好一件事,要有耐心,细心,要脚踏实地,而不应该毛躁,而且要学会很好的利用网络资源,之前我并没有接触过图像信号处理系统,所以对这方面的知识是一点储备都没有,但是通过网络查询和利用MATLAB实际操作之后,我对图像信息的获得和处理有了一点基本的认识。其次,做这个东西真的很考验一个人的耐心,尤其在编写程序的时候明明感觉是对的,但是运行出来却不是想要的结果,而且总是很难发现自己错在哪里,这时候就需要足够的耐心去检查程序,发现错误。在今后的学习过程中,我还会继续深入学习MATLAB,让它更好的为我所用。参考文献1.百度:基于MATLAB的GUI滤

19、波器设计专题论文2.张志涌精通MATLAB6.5版教程.北京:北京航天航空大学出版社,2003(56)-=附录系统原理图或完整程序程序设计:i=imread(C:UsersAdministratorDesktop截图12.jpg); g0 =i(:,:,2); figure,imshow(g0); g1 = imnoise(g0,gaussian,0,0.01); figure,imshow(g1); h1=fspecial(gaussian,3,1); g2=imfilter(g1,h1,same); figure;imshow(g2);GUI程序的完整设计:function varargo

20、ut = chenjiaxian(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, chenjiaxian_OpeningFcn, . gui_OutputFcn, chenjiaxian_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(v

21、arargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction chenjiaxian_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);function varargout = chenjiaxian_OutputFcn(hObject, event

22、data, handles) varargout1 = handles.output;function pushbutton1_Callback(hObject, eventdata, handles)global S axes(handles.axes2); y=imread(S); f=imshow(y); handles.img=y; guidata(hObject,handles);function pushbutton2_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt

23、=旋转角度:;defans=0; p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imrotate(handles.img,p1,bilinear,crop);imshow(f);handles.img=f;guidata(hObject,handles);function Untitled_2_Callback(hObject, eventdata, handles)filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,载入图片);if isequal(filename,0)|isequal(

24、pathname,0)errordlg(没有选中文件,出错);return; elsefile=pathname,filename;global S S=file;x=imread(file);set(handles.axes1,HandleVisibility,ON);axes(handles.axes1);imshow(x);set(handles.axes1,HandleVisibility,OFF);axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);endfunction Untitled_3_Ca

25、llback(hObject, eventdata, handles)sfilename,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,untitled.jpg);ifisequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath,sfilename;imwrite(handles.img,sfilefullname);else msgbox(你按了取消键,保存失败);endfunction Untitled_4_Callback(hObject, eventdata, handles)clc;

26、close all;close(gcf);clear;function Untitled_6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt=调整倍数;defans=1;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);y=imadjust(handles.img,p1);imshow(y);handles.img=y;guidata(hObject,handles); function Untitled_7_Callback(h

27、Object, eventdata, handles)global Taxes(handles.axes2);T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);function Untitled_1_Callback(hObject, eventdata, handles)function Untitled_5_Callback(hObject, eventdata, handles)function uipanel1_SelectionChangeFcn(hObject, e

28、ventdata, handles)global Tstr=get(hObject,string);axes(handles.axes2);switch str case 高斯噪声T=getimage;prompt=输入高斯噪声1:,输入高斯噪声2;defans=0,0.02;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);p2=str2num(p2);f=imnoise(handles.img,gaussian,p1,p2);imshow(f);handles.img=f;guidata(hObject,handles);case乘性噪声 T=getimage;prompt=输入乘性噪声1:;defans=0.02;p=inputdlg(prompt,input,1,defans);p1=str2num(p1);f=imnoise(handles.img,speckle,p1);imshow(f);handles.img=f;guidata(hObject,handles);end

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!