圖像處理課程報告(金佳琪1115101021)_第1頁
圖像處理課程報告(金佳琪1115101021)_第2頁
圖像處理課程報告(金佳琪1115101021)_第3頁
圖像處理課程報告(金佳琪1115101021)_第4頁
圖像處理課程報告(金佳琪1115101021)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、圖像處理課程報告題 目: 圖像的增強 院(系) 信息科學與工程學院 專 業(yè) 通信工程 屆 別 2011級 班 級 通信工程A班 學 號 1115102021 姓 名 金佳琪 任課老師 馮桂 摘要本文以MATLAB軟件的圖形用戶界面(GUI)開發(fā)環(huán)境和圖像處理工具箱為平臺設計了數(shù)字圖像綜合處理系統(tǒng),通過編寫不同的按鈕代碼,實現(xiàn)數(shù)字圖像的空域、頻域、銳化、平滑等簡易的圖像增強處理功能。加強圖像的有用信息,使圖像更加美觀,操作簡單且美觀。在MATLAB中,GUI1是一個包含多種對象的圖形窗口,并為GUI開發(fā)提供一個方便高效的集成開發(fā)環(huán)境GUIDE。GUIDE主要是一個界面設計工具集,MATLAB將所

2、有GUI支持的控件都集成在這個環(huán)境中,并提供界面外觀、屬性和行為響應方式的設置方法。GUIDE將設計好的GUI保存在一個FIG文件中,同時還生成M文件框架。其中FIG文件包括GUI圖形窗口及其所有FIG文件包含序列化的圖形窗口對象;M文件包括GUI設計、控制函數(shù)以及定義為子函數(shù)的用戶控件回調(diào)函數(shù)。GUI創(chuàng)建包括界面設計和控件編程兩部分,主要步驟如下:通過設置GUIDE應用程序的選項來運行GUIDE;使用界面設計編輯器進行界面設計;編寫控件行為響應控制(即回調(diào)函數(shù))代碼。在MATLAB中,GUIDE提供多個模板來定制GUI。這些模板均已包括相關的回調(diào)函數(shù),可以通過修改相應的M文件函數(shù)實現(xiàn)指定功能

3、。關鍵詞: MATLAB 數(shù)字圖像處理 GUI目錄一 課程設計簡介4 1. 實現(xiàn)功能4 2 . 設計思路4 (1)GUI交互設計4 (2)GUI設計效果5二 圖像處理功能的實現(xiàn)與測試61. 變換處理62. 噪聲處理123. 濾波處理15三 總結(jié)與反思19四 參考文獻19五 附錄 一 課程設計簡介1. 實現(xiàn)功能使用Matlab GUI所提供的圖形界面制作方法,以及圖像處理課程中學到的圖像增強相關知識。查閱或自編相關算法,使用GUI界面制作一個簡單的圖像處理軟件,實現(xiàn)圖像的空域、頻域、銳化、平滑等簡易的圖像增強處理功能。加強圖像的有用信息,使圖像更加美觀。同時進一步熟悉MatlabGUI的制作,圖

4、像處理的有關函數(shù)和算法的使用。2. 設計思路(1)GUI交互設計文件打開保存退出編輯撤銷恢復還原圖像處理變換處理灰度變換亮度對比度旋轉(zhuǎn)加入噪聲椒鹽噪聲高斯噪聲乘性噪聲濾波處理空域濾波平滑線性平滑非線性平滑銳化線性銳化拉普拉斯算子銳化梯度銳化頻域濾波低通濾波高通濾波(2)GUI設計效果總體設計界面總體界面使用簡單的快捷按鈕鍵實現(xiàn)簡單的圖像增強處理功能,原始圖像與處理效果圖像分別位于界面的左右,右側(cè)有14個功能處理按鈕,上方有文件按鈕與編輯按鈕。GUI主菜單結(jié)構(gòu)圖菜單結(jié)構(gòu)采用普通軟件的菜單模板,文件,編輯,以及圖像處理功能,簡單明了。 二 圖像處理功能的實現(xiàn)與測試1. 變換處理(1) 灰度變換利用

5、rgb2gray(X)函數(shù)對其他圖像進行灰度圖像的轉(zhuǎn)換。程序如下:function huidu_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;x=rgb2gray(handles.img); imshow(x);handles.img=x;guidata(hObject,handles);測試結(jié)果如下:(2) 亮度調(diào)節(jié)程序如下:function liangdu_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);

6、T=getimage;prompt='亮度調(diào)整倍數(shù)'defans='2'%默認調(diào)整倍數(shù)為2p=inputdlg(prompt,'input',1,defans);9 / 50p1=str2num(p1);y=imadjust(handles.img, , ,p1); %亮度調(diào)節(jié)imshow(y);handles.img=y;guidata(hObject,handles);測試結(jié)果如下(亮度倍數(shù)為0.5):(3) 對比度程序如下:unction duibidu_Callback(hObject, eventdata, handles)global

7、 Taxes(handles.axes2);T=getimage;prompt='輸入?yún)?shù):'defans='2'%默認調(diào)整倍數(shù)為2p=inputdlg(prompt,'input',1,defans);p1=str2num(p1);f=immultiply(handles.img,p1);imshow(f);handles.img=f;測試結(jié)果如下(參數(shù)為2):(4) 旋轉(zhuǎn)圖片程序如下:function xuanzhuan_Callback(hObject, eventdata, handles)global Taxes(handles.axe

8、s2);T=getimage;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);測試結(jié)果(旋轉(zhuǎn)90度):2. 加入噪聲(1) 椒鹽噪聲程序如下:function jiaoyan_Callback(hObject, eventd

9、ata, handles)global Taxes(handles.axes2);T=getimage; prompt='輸入椒鹽噪聲參數(shù):'defans='0.02'p=inputdlg(prompt,'input',1,defans);p1=str2num(p1);f=imnoise(handles.img,'salt & pepper',p1);imshow(f);handles.img=f;guidata(hObject,handles);測試結(jié)果如下(參數(shù)為0.02):(2)高斯噪聲程序如下:function g

10、aosi_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);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

11、=f;guidata(hObject,handles);測試結(jié)果(參數(shù)為0,0.02)(3) 乘性噪聲程序如下:function chengxing_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;T=getimage;prompt='輸入乘性噪聲系數(shù):'defans='0.02'p=inputdlg(prompt,'input',1,defans);p1=str2num(p1);f=imnoise(handles.img,'speck

12、le',p1);imshow(f);handles.img=f;guidata(hObject,handles);測試結(jié)果(參數(shù)為0.02):3. 濾波處理3.1空域濾波3.1.1平滑處理(1) 線性平滑程序如下:function xianxingpinghua_Callback(hObject, eventdata, handles)axes(handles.axes2);global T;I=T;I=imfilter(I,fspecial('average',3),'same');imshow(I);測試結(jié)果如下(先加入?yún)?shù)為0.02的椒鹽噪聲):

13、原始圖 加入?yún)?shù)為0.02的椒鹽噪聲 線性平滑濾波后(2) 非線性平滑由于程序問題未能及時解決,此程序僅可完成灰度圖像的非線性平滑功能。程序如下:function feixianxingpinghua_Callback(hObject, eventdata, handles)axes(handles.axes2);global T;A=T;gmr=medfilt2(A);imshow(gmr);測試結(jié)果如下: 灰度圖像 加入高斯噪聲 非線性平滑3.1.2 銳化(1) 線性銳化程序如下:function xianxingruihua_Callback(hObject, eventdata, ha

14、ndles)global im global BW axes(handles.axes2); H = fspecial('unsharp');BW = imfilter(im,H,'replicate');imshow(BW); 測試結(jié)果如下(可能由于程序問題,有時線性銳化結(jié)果無法顯示出):(2) 拉普拉斯算子銳化程序如下:function lapulasi_Callback(hObject, eventdata, handles)global imglobal BWim=getimage; mysize=size(im);if numel(mysize)>

15、;2 A=rgb2gray(im); %將彩色圖像轉(zhuǎn)換為灰度圖像elseA=im;endA=double(A);%轉(zhuǎn)換數(shù)據(jù)類型為double雙精度型H=0 1 0,1 -4 1,0 1 0;%拉普拉斯算子J=conv2(A,H,'same');%用拉普拉斯算子對圖像進行二維卷積運算BW=A-J;%增強的圖像為原始圖像減去拉普拉斯算子濾波的圖像BW=uint8(round(BW-1); %將雙精度圖像轉(zhuǎn)換為單精度圖像,使得保存圖像時不出錯axes(handles.axes2); imshow(BW,);測試結(jié)果如下:(3) 梯度銳化程序如下:function tiduruihua

16、_Callback(hObject, eventdata, handles)global imglobal BWim=double(im);%數(shù)據(jù)類型轉(zhuǎn)換IX,IY=gradient(im);BW=sqrt(IX.*IX+IY.*IY);axes(handles.axes2); BW=uint8(round(BW-1); % double 浮點型轉(zhuǎn)換為 uint8 無符號整型imshow(BW,); 測試結(jié)果如下(有些圖片無法完成測試):3.2 頻域濾波(1) 低通濾波程序如下:function ditonglvbo_Callback(hObject, eventdata, handles)g

17、lobal Taxes(handles.axes2);y1=handles.img; f=double(y1); g=fft2(f); g=fftshift(g); M,N=size(g);nn=2; d0=50; m=fix(M/2); n=fix(N/2);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); h=1/(1+0.414*(d/d0)(2*nn); result(i,j)=h*g(i,j); endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2);imshow(y3);

18、測試結(jié)果如下:低通濾波保留了圖像中的低頻分量,而除去了圖像中邊緣和噪聲所對應傅里葉頻譜中的高頻分量,減弱了噪聲的影響并模糊圖像邊緣輪廓,與空域中的平滑方法類似。(2) 高通濾波程序如下:function gaotonglvbo_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);axes(handles.axes2);x=(handles.img); f=double(x); k=fft2(f); g=fftshift(k); M,N=size(g);nn=2;d0=25; m=fix(M/2); n=fix(N/2

19、);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); if d<=d0 h=0; else h=1; end result(i,j)=h*g(i,j); endendresult=ifftshift(result);y2=ifft2(result);y3=uint8(real(y2);imshow(y3);測試結(jié)果如下:高通濾波保留了圖像邊緣所對應的高頻分量,而除去了低頻分量,經(jīng)過高通濾波處理后的結(jié)果不僅邊緣得到了增強,整幅圖像的層次也比較豐富。三 總結(jié)與反思仍然無法解決的問題:1. 直接用MATLAB打開.fig文件會出現(xiàn)圖片無法打開的情況,必須先打開

20、.m文件運行成功后GUI才可以正常使用。2. 撤銷命令無法像一般軟件的撤銷功能一樣實現(xiàn)連續(xù)撤銷。3. 連續(xù)使用GUI功能后,會出現(xiàn)點擊功能鍵后,處理圖像窗口出現(xiàn)上次處理過得圖像的情況。4. 有寫功能(如線性銳化)會出現(xiàn)時而有用時而出錯的情況。以上問題望馮老師知道,希望能夠加以解決,使設計更加完美??偨Y(jié): 在同學的知道下,能夠完成此GUI的設計,無論在數(shù)字圖像處理的理論知識還是MATLAB軟件的熟練運用上,都有了更深刻的了解與進步。并且對圖像處理有了一定的興趣,希望在今后的學習中能郵寄回做更加深入的學習!四 參考文獻1 章毓晉. 圖像處理(上冊)第三版. 清華大學出版社. 2012年2 施曉紅,

21、周佳. 精通GUI圖形界面編程. 北京大學出版社. 2002年3 張德豐. 數(shù)字圖像處理MATLAB詳解J. 電子工業(yè)出版社. 2010.7(MATLAB仿真與應用系列叢書)4 姚敏. 數(shù)字圖象處理. 機械工業(yè)出版. 20115 劉衛(wèi)國. MATLAB程序設計與應用. 高等教育出版. 2006,7五 附件程序打開function Open_Callback(hObject, eventdata, handles)filename,pathname=uigetfile('*.jpg''*.bmp''*.tif''*.*','

22、載入圖像');if isequal(filename,0)|isequal(pathname,0) errordlg('沒有選中文件','出錯'); return;else file=pathname,filename; global S %設置一個全局變量S,保存初始圖像路徑,以便之后的還原操作 S=file; x=imread(file); set(handles.axes1,'HandleVisibility','ON'); axes(handles.axes1); imshow(x); set(handles.ax

23、es1,'HandleVisibility','OFF'); axes(handles.axes2); imshow(x); handles.img=x; guidata(hObject,handles);end保存function Save_Callback(hObject, eventdata, handles)sfilename ,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*','保存圖像文件','untitled.jpg'); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handle

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論