基于MATLAB的圖形濾波器程序設(shè)計_第1頁
基于MATLAB的圖形濾波器程序設(shè)計_第2頁
基于MATLAB的圖形濾波器程序設(shè)計_第3頁
基于MATLAB的圖形濾波器程序設(shè)計_第4頁
基于MATLAB的圖形濾波器程序設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、華僑大學(xué)廈門工學(xué)院 MATLAB 課程設(shè)計報告題 目:專業(yè)、班級:學(xué)生姓名:學(xué) 號:指導(dǎo)教師: 2014 年月日MATLAB課程設(shè)計任務(wù)書系電子信息工程專業(yè)電子信息工程學(xué)生姓名陳嘉賢學(xué)號1102201005設(shè)計題目基于MATLAB的圖形濾波器程序設(shè)計基本要求: 1、 掌握MATLAB編程的原理和方法。  2、 熟悉語音信號的基本特征和分析處理方法。 3、 掌握數(shù)字信號處理的基本概念、理論和方法。 4、 熟練運用MATLAB設(shè)計合適的IIR數(shù)字濾波器。主要內(nèi)容:學(xué)習掌握數(shù)字圖像處理中的圖像濾波特點,并了解MATLAB語言中的相關(guān)函數(shù),設(shè)計程序?qū)崿F(xiàn)

2、各種圖像濾波功能以及一些圖片處理。設(shè)計要求:  自行編寫算法,并進行調(diào)試,最終實現(xiàn)圖像濾波的數(shù)字圖像處理功能。學(xué)有余力的情況下,可以考慮采用圖形用戶界面(GUI)的方法實現(xiàn)。 目錄內(nèi)容4一、設(shè)計內(nèi)容 4二、設(shè)計要求 4三、方案論證與設(shè)計原理描述4四、設(shè)計結(jié)果 51.GUI程序的設(shè)計: 6(1)調(diào)整亮度的程序設(shè)計:6(2)完成彩圖到灰度圖的轉(zhuǎn)換 :6(3)在開始菜單下的打開按鈕的程序:6(4)保存按鈕的程序:7(5)退出程序:7(6)添加噪聲程序:7(7)還原按鍵的程序:8(8)翻轉(zhuǎn)程序:82.結(jié)果8總結(jié) 

3、12參考文獻12附錄 12內(nèi)容一、設(shè)計內(nèi)容   學(xué)習掌握數(shù)字圖像處理中的圖像濾波特點,并了解MATLAB語言中的相關(guān)函數(shù),設(shè)計程序?qū)崿F(xiàn)各種圖像濾波功能。 二、設(shè)計要求   自行編寫算法,并進行調(diào)試,最終實現(xiàn)圖像濾波的數(shù)字圖像處理功能。學(xué)有余力的情況下,可以考慮采用圖形用戶界面(GUI)的方法實現(xiàn)。 三、方案論證與設(shè)計原理描述 圖像濾波是改變圖像質(zhì)量,去除圖像噪聲的一種方法。主要包括空間域濾波和頻域濾波。空間域濾波主要包括線性濾波、中值濾波、維納濾波。 濾波運算matlab函數(shù)imfilter(A,H)(或

4、filter2(B,X)),其中A/B為原始圖像,H/X為濾波掩膜。fspecial(type,para):主要的三種類型: 1、average:均值濾波,參數(shù)為hsize代表模板尺寸,默認值為【3,3】 2、gaussian:高斯低通濾波,有兩個參數(shù),hsize表示模板尺寸,默認值為【3 3】,sigma為濾波器的標準值,單位為像素,默認值為0.5. 3、laplacian :拉普拉斯算子,參數(shù)alpha用于控制算子形狀,取值范圍為【0,1】,默認值為0.2. 基本函數(shù) 1. imread imread函數(shù)用于讀入各種圖像文件,如:a=imread('e:w01.jpg')

5、注:計算機E盤上要有w01相應(yīng)的.jpg文件。 2. imfinfo imfinfo函數(shù)用于讀取圖像文件的有關(guān)信息,如:imfinfo('e:w01.jpg') 3. rgb2gray rgb2gray()函數(shù)用于把真彩圖轉(zhuǎn)換為灰度圖 4. 4. imshow imshow函數(shù)用于灰度圖像文件的顯示,如: i=imread('e:w01.jpg'); imshow(i); 1. imnoise imnoise函數(shù)用于對圖像生成模擬噪聲,如: i=imread('e:w01.jpg'); j=imnoise(i,'gaussian'

6、,0,0.02);%模擬高斯噪聲 5. 5. fspecial fspecial函數(shù)用于產(chǎn)生預(yù)定義濾波器,如: h=fspecial('sobel');%sobel水平邊緣增強濾波器 h=fspecial('gaussian');%高斯低通濾波器 h=fspecial('laplacian');%拉普拉斯濾波器 h=fspecial('log');%高斯拉普拉斯(LoG)濾波器 h=fspecial('average');%均值濾波器 6. 中值濾波 medfilt2函數(shù)用于圖像的中值濾波,如: i=imread(

7、'e:w01.jpg'); j=medfilt2(i); 加入高斯噪聲比的方式 高斯噪聲是指它的概率密度函數(shù)服從高斯分布(即正態(tà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為加噪聲后圖象的灰度矩陣一般情況下用 (式3-1)表示即可,

8、(式3-2)中表示是允許修改參數(shù),而(式3-1)中使用缺省參數(shù);(式3-3)中對圖像I加高斯噪聲,均值為m,方差為v。 高斯平滑濾波器的原理 高斯濾波器是根據(jù)高斯函數(shù)的形狀來選擇權(quán)值的線性平滑濾波器。高斯平滑濾波器對去除服從正態(tài)分布的噪聲有很好的效果。一維零均值高斯函數(shù)決定了高斯濾波器的寬度。對圖像來說,常用二維零均值離散高斯函數(shù)做平滑濾波器,在高斯濾波器的設(shè)計中,高斯函數(shù)的最佳逼近由二項式展開的系數(shù)決定。由高斯函數(shù)的可分離性得到,二維高斯濾波器能用2個一維高斯濾波器逐次卷積來實現(xiàn),一個沿水平方向,一個沿垂直方向。實際上,這種運算可以通過使用單個一維高斯模板,對兩次卷積之間的圖像和最后卷積的結(jié)

9、果圖像進行轉(zhuǎn)置來完成。 對較大的濾波器,二項式系數(shù)對大多數(shù)計算機來說都太多,但是,任意大的高斯濾波器都能通過重復(fù)使用小的高斯濾波器來實現(xiàn)。高斯濾波器的二項式逼近的可用高斯函數(shù)擬合二項式系數(shù)的最小方差來計算設(shè)計高斯濾波器的另一種途徑是直接從離散的高斯分布中計算模板值。為了計算方便,一般希望濾波器權(quán)值是整數(shù)。在模板的一個角點處取一個值,并選擇一個K使該角點處值為1。通過這個系數(shù)可以使濾波器整數(shù)化,由于整數(shù)化后的模板權(quán)值之和不等于1,為了保證圖像的均勻灰度區(qū)域不受影響,必須對濾波模板進行權(quán)值規(guī)范化。 -四、設(shè)計結(jié)果 i=imread('C:UsersAdministratorDes

10、ktops15.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程序的設(shè)計: (1)調(diào)整亮度的程序設(shè)計:function Untitled_6_Callback(hObject, eventdata, handles)global T

11、axes(handles.axes2);T=getimage;prompt='調(diào)整倍數(shù)'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)完成彩圖到灰度圖的轉(zhuǎn)換 :function Untitled_7_Callback(hObject, eventdata, handles)global Taxes(hand

12、les.axes2);T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);(3)在開始菜單下的打開按鈕的程序:function Untitled_2_Callback(hObject, eventdata, handles)filename,pathname=uigetfile('*.jpg''*.bmp''*.tif''*.*','載入圖像');if isequal(filename,0)|iseq

13、ual(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);h

14、andles.img=x;guidata(hObject,handles);end(4)保存按鈕的程序:function Untitled_3_Callback(hObject, eventdata, handles)sfilename,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*','保存圖像文件','untitled.jpg');Ifisequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath,sfi

15、lename;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(hObject, eventdata, handles)global Tstr=get(hObject,'stri

16、ng');axes(handles.axes2);switch strcase'高斯噪聲'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(hO

17、bject,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(7)還原按鍵的程序:function pushbutton1_Callback(hObject, even

18、tdata, handles)global S axes(handles.axes2); y=imread(S); f=imshow(y); handles.img=y; guidata(hObject,handles);(8)翻轉(zhuǎn)程序:function pushbutton2_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt='旋轉(zhuǎn)角度:'defans='0' p=inputdlg(prompt,'input',1,defans)

19、;p1=str2num(p1);f=imrotate(handles.img,p1,'bilinear','crop');imshow(f);handles.img=f;guidata(hObject,handles);2.結(jié)果原圖:原圖的灰度圖像:高斯加噪的圖:高斯去噪后的圖像:GUI界面的設(shè)計:GUI界面運行圖:調(diào)整亮度: 形成灰度圖:通過添加乘性噪聲效果圖:添加高斯噪聲形成效果圖:翻轉(zhuǎn)效果:用戶菜單設(shè)計:總結(jié) 此次課程設(shè)計,要求對MATLAB進行基礎(chǔ)的運用和掌握,雖然只是對MATLAB一小部分進行運用。以前,對MATLAB并沒有太多的接

20、觸,僅僅是在第一次進行課程設(shè)計時利用MATLAB進行了圖像的繪制和一些簡單的處理函數(shù)。但經(jīng)過這次我才發(fā)現(xiàn),MATLAB軟件功能真的很強大,它的圖像工具箱幾乎包括所有經(jīng)典的圖像處理方法,可以很方便的對圖像進行處理。對于一款軟件的應(yīng)用還是應(yīng)該自己動手實際操作才會有深刻理解。通過這次的課程設(shè)計,我意識到了想要做好一件事,要有耐心,細心,要腳踏實地,而不應(yīng)該毛躁,而且要學(xué)會很好的利用網(wǎng)絡(luò)資源,之前我并沒有接觸過圖像信號處理系統(tǒng),所以對這方面的知識是一點儲備都沒有,但是通過網(wǎng)絡(luò)查詢和利用MATLAB實際操作之后,我對圖像信息的獲得和處理有了一點基本的認識。其次,做這個東西真的很考驗一個人的耐心,尤其在編

21、寫程序的時候明明感覺是對的,但是運行出來卻不是想要的結(jié)果,而且總是很難發(fā)現(xiàn)自己錯在哪里,這時候就需要足夠的耐心去檢查程序,發(fā)現(xiàn)錯誤。     在今后的學(xué)習過程中,我還會繼續(xù)深入學(xué)習MATLAB,讓它更好的為我所用。參考文獻1.百度:基于MATLAB的GUI濾波器設(shè)計專題論文2. 張志涌  精通MATLAB 6.5版教程.北京:北京航天航空大學(xué)出版社, 2003(56)-é=ë附錄 系統(tǒng)原理圖或完整程序 程序設(shè)計:i=imread('C:UsersA

22、dministratorDesktop截圖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程序的完整設(shè)計:function varargout = chenjiaxian(varargin)gui_Singleton = 1;gui_Stat

23、e = 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

24、= str2func(varargin1);endif 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(hOb

25、ject, eventdata, 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=geti

26、mage;prompt='旋轉(zhuǎn)角度:'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(

27、'*.jpg''*.bmp''*.tif''*.*','載入圖片');if isequal(filename,0)|isequal(pathname,0)errordlg('沒有選中文件','出錯');return;elsefile=pathname,filename;global S S=file;x=imread(file);set(handles.axes1,'HandleVisibility','ON');axes(handles.axes1)

28、;imshow(x);set(handles.axes1,'HandleVisibility','OFF');axes(handles.axes2);imshow(x);handles.img=x;guidata(hObject,handles);endfunction Untitled_3_Callback(hObject, eventdata, handles)sfilename,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*','保存圖像文件

29、','untitled.jpg');ifisequal(sfilename,sfilepath,0,0)sfilefullname=sfilepath,sfilename;imwrite(handles.img,sfilefullname);else msgbox('你按了取消鍵','保存失敗');endfunction Untitled_4_Callback(hObject, eventdata, handles)clc;close all;close(gcf);clear;function Untitled_6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt='調(diào)整倍數(shù)'defans='1'p=inputdlg(prompt,'input',1,defans);p1=str2num(p1);y=imadjust(handles

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論