數(shù)字圖像處理GUI界面設(shè)計(jì)_第1頁
數(shù)字圖像處理GUI界面設(shè)計(jì)_第2頁
數(shù)字圖像處理GUI界面設(shè)計(jì)_第3頁
數(shù)字圖像處理GUI界面設(shè)計(jì)_第4頁
數(shù)字圖像處理GUI界面設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄專心-專注-專業(yè)第一章 設(shè)計(jì)任務(wù)及要求1.1設(shè)計(jì)依據(jù)在掌握數(shù)字圖像處理基本算法的基礎(chǔ)上,利用MATLAB軟件設(shè)計(jì)具有指定功能的1.2課程設(shè)計(jì)內(nèi)容設(shè)計(jì)一個(gè)或包含子界面的圖形用戶界面,該界面可以讀入任意格式的圖片并在一個(gè)圖片窗口中顯示,同時(shí)包含下拉列表或按鈕等控件,用戶可以從中選擇不同的圖像增強(qiáng)功能及參數(shù),例如:對(duì)比度調(diào)節(jié),灰度變換,圖像銳化,圖像濾波等功能,讀入的圖片會(huì)根據(jù)選擇在新的圖片窗口中顯示不同的處理結(jié)果。 1.3課程設(shè)計(jì)要求(1)要求每個(gè)同學(xué)獨(dú)立完成設(shè)計(jì)任務(wù)。(2)課程設(shè)計(jì)說明書封面格式要求見課程設(shè)計(jì)說明書格式要求。(3)課程設(shè)計(jì)的說明書要求簡(jiǎn)潔、通順,圖像

2、表達(dá)內(nèi)容完整、清楚、規(guī)范。(4)課程設(shè)計(jì)說明書要求:(5)說明題目的設(shè)計(jì)原理和思路、采用方法及設(shè)計(jì)流程。(6)可采用圖表或文字對(duì)圖形用戶界面各子模塊的功能以及各子模塊之間的關(guān)系做較詳細(xì)的描述。(7)詳細(xì)說明MATLAB代碼的編寫流程。(8)采用圖像及文字詳細(xì)說明各功能的演示結(jié)果。(9)界面功能自行增加,涉及的算法越多越好。第2章 設(shè)計(jì)原理2.1設(shè)計(jì)題目分析課程設(shè)計(jì)題目要求運(yùn)用所學(xué)的圖像增強(qiáng)技術(shù)知識(shí)設(shè)計(jì)一個(gè)GUI界面程序,通過界面控件對(duì)給定圖像完成各種圖像增強(qiáng)的功能。功能中包含一系列圖像增強(qiáng)方式,有對(duì)比度調(diào)節(jié),灰度變換,圖像銳化,圖像濾波等功能。在菜單欄中還有圖像的打開及保存等一系列的按鈕。2.

3、2 設(shè)計(jì)原理通過學(xué)習(xí)數(shù)字圖像處理這一門學(xué)科,以及Matlab這一軟件。制作圖像處理GUI人機(jī)交換界面,以方便使用。設(shè)計(jì)中,通過界面上的控件操作對(duì)圖像進(jìn)行簡(jiǎn)單的處理,而控件通過后臺(tái)代碼實(shí)現(xiàn)各種不同的操作功能。在界面中,人們能看到的控件分為三大類:圖像顯示模塊,功能控件模塊,以及菜單欄模塊。(1) 圖像顯示模塊:打開原圖像即沒有處理過的圖像會(huì)在第一個(gè)圖像顯示窗口中顯示,第二個(gè)窗口為顯示通過一定處理后的圖像。 圖 1 顯示模塊(2) 功能控件模塊:打開與圖像后,通過功能控件對(duì)對(duì)象進(jìn)行簡(jiǎn)單的處理操作,使得通過不同控件操作后的圖像在第二個(gè)顯示框中顯示。創(chuàng)建完成界面效果圖如下。 圖 2 創(chuàng)建完成后的GUI

4、界面 第3章 設(shè)計(jì)實(shí)現(xiàn)3.1 菜單欄編輯 通過Menu Editor創(chuàng)建如下菜單,通過以下菜單來打開圖像即保存圖像功能按鍵實(shí)現(xiàn)圖像的讀取與保存。 圖 3 菜單欄編輯 圖 4 打開文件圖像該菜單按鈕是通過利用matlab中 “ uigetfile”、“imread” “imshow”實(shí)現(xiàn)圖像文件的讀取與顯示:主程序:filename,pathname=uigetfile('*.jpg''*.bmp''*.tif''*.*','載入圖像');if isequal(filename,0)|isequal(pathname

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

6、s(handles.axes2); imshow(x); handles.img=x; guidata(hObject,handles);End利用“uiputfile”、“imwrite”函數(shù)實(shí)現(xiàn)圖像文件的保存。 圖 5 圖像保存主程序如下:function save_Callback(hObject, eventdata, handles)% hObject handle to save (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with h

7、andles and user data (see GUIDATA) sfilename ,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*','保存圖像','untitled.jpg'); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgbox('你按了取消鍵'

8、;,'保存失敗'); end3.2 控件及代碼的加入3.2.1 GUI窗口的創(chuàng)建 打開 Matlab后,在命令行里面敲入命令“Guide”后按回車鍵或是在菜單欄“File”、“New”、“Gui”創(chuàng)建GUI界面,然后彈出一個(gè)對(duì)話框,用鼠標(biāo)單擊“OK”,即可創(chuàng)建一個(gè)新的GUI界面。打開界面效果圖如下: 圖 6 創(chuàng)建GUI界面 圖 7 創(chuàng)建GUI界面 3.2.2 控件按鈕的創(chuàng)建在創(chuàng)建GUI界面完成后,在界面的左邊有一系列的控件按鈕,只需要用鼠標(biāo)點(diǎn)擊,然后在界面中再次單擊及拖動(dòng)鼠標(biāo)即可,大小及位置在界面中更改。這樣就可以創(chuàng)建所需要的控件按鈕。效果圖如下: 圖 8 按鈕的創(chuàng)建創(chuàng)建按鈕完

9、成以后,雙擊按鈕可以更改控件的屬性。效果圖如下: 圖 9 按鈕屬性窗口3.2.3 控件代碼加入創(chuàng)建控件按鈕完成以后,鼠標(biāo)右擊控件按鈕,選擇“View callbacks” “Callback”單擊,出現(xiàn).M文件的程序代碼,在控件按鈕代碼“function pushbutton1_Callback(hObject, eventdata, handles)”的下方加入已經(jīng)改好的控件功能代碼,后單擊菜單欄上面的“”即可運(yùn)行程序。 圖 10 .M文件代碼通過這樣的方法可以加入多個(gè)功能控件,實(shí)現(xiàn)不同的圖像處理功能的GUI界面。 3.4 圖像灰度處理 通過界面上的灰度處理控件對(duì)彩色圖像進(jìn)行灰度處理,使得原

10、來本是彩色的圖片通過處理后在第二個(gè)顯示框中變成灰色圖像。 圖 11 灰度處理主要程序:function pushbutton6_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);13 / 50T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);該程序是利用rgb2gray(X)函數(shù)對(duì)其他圖像進(jìn)行灰度圖像的轉(zhuǎn)化。3.5 亮度調(diào)節(jié)通過“載入圖像”控件或是菜單欄中的“打開”菜單將圖像在GUI界面上的第一個(gè)圖

11、像顯示框中打開,然后按下控件“亮度調(diào)節(jié)”,會(huì)彈出一個(gè)所需要調(diào)節(jié)亮度的值的對(duì)話框,在里面輸入數(shù)值以后,在第二個(gè)顯示框中會(huì)顯示出通過“亮度調(diào)節(jié)”控件處理后的圖片。 圖 12 輸入亮度值 圖 13 亮度對(duì)比前后主要程序:function pushbutton5_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt='亮度調(diào)節(jié)'defans='1'p=inputdlg(prompt,'input',1,defans);9 / 50p1=str2

12、num(p1);y=imadjust(handles.img, , ,p1); imshow(y);handles.img=y;guidata(hObject,handles);程序通過:defans='1'p=inputdlg(prompt,'input',1,defans);定義亮度對(duì)話框,而通過函數(shù)語句p1=str2num(p1);y=imadjust(handles.img, , ,p1);對(duì)圖像進(jìn)行亮度的轉(zhuǎn)換。3.6 底片處理通過“載入圖像”控件或是菜單欄中的“打開”菜單將圖像在GUI界面上的第一個(gè)圖像顯示框中打開,然后按下控件“底片處理”按鈕操作,對(duì)

13、圖像進(jìn)行圖像的底片處理,效果圖如下。 圖 14 底片處理前后對(duì)照主程序:function pushbutton9_Callback(hObject, eventdata, handles)axes (handles.axes2);T=getimage;f=imcomplement(handles.img); %圖像取反imshow(f);handles.img=f;guidata(hObject,handles);程序主要通過函數(shù)f=imcomplement(handles.img); 實(shí)現(xiàn)圖像的取反功能。 3.7 直方圖均衡化 直方圖均衡化的基本思想就是把原始圖像不均衡的直方圖變換為均勻的分

14、布,這樣就增加了灰度值的動(dòng)態(tài)范圍,從而達(dá)到增強(qiáng)圖像整體對(duì)比度的效果。經(jīng)過GUI界面處理前后的照片對(duì)比效果如下: 圖 15 直方圖均衡化主程序:set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);h=histeq(handles.img); %直方圖均衡化imshow(h);第4章 結(jié)果分析及總結(jié) 通過幾周的時(shí)間學(xué)習(xí)GUI界面的制作以及所學(xué)課程知識(shí)的再次學(xué)習(xí),完成了此次課程設(shè)計(jì)。在過程當(dāng)中,軟件測(cè)試基本成功,完成課題所要求的圖像增強(qiáng)功能的實(shí)現(xiàn)。但一些功能只支持灰度圖像的處理。還有的功能沒有實(shí)

15、現(xiàn),我自己認(rèn)為是程序有錯(cuò)誤,但是檢查很久都沒有檢查出來,還有一個(gè)很大的問題就是當(dāng)程序運(yùn)行以后回頭在看控件代碼時(shí),總是會(huì)有亂碼出現(xiàn),在程序當(dāng)中改過來以后還是會(huì)自動(dòng)的改為亂碼,這一點(diǎn)也是我沒有明白的原因。 通過這次課程設(shè)計(jì),使我對(duì) matlab 的使用有了進(jìn)一步的了解和熟悉。當(dāng)我第一次拿到此次的課題時(shí),感到有些無所適從。雖然,曾經(jīng)學(xué)習(xí)過matlab 的課程,但由于對(duì) matlab 的學(xué)習(xí)更多的只是停留在理論上的學(xué)習(xí),在課時(shí)內(nèi)的試驗(yàn)也只是簡(jiǎn)單的基礎(chǔ)性試驗(yàn), 所以對(duì) matlab 實(shí)際運(yùn)用不是很熟練。雖然對(duì)課題感到很懵懂,但是通過在網(wǎng)上學(xué)習(xí)視頻以后,我開始找到了解決問題的路徑。我選擇的是“利用 mat

16、lab 的 GUI 程序設(shè)計(jì)一個(gè)簡(jiǎn)單實(shí)用的圖像處理程序”這一課題。本課題的重點(diǎn)是句柄的使用、GUI 的使用以及 matlab 中相關(guān)圖像處理函數(shù)使用。為此,我利用課余時(shí)間,重新復(fù)習(xí)了 matlab 教材,專門借閱了利用 matlab 進(jìn)行圖像處理的相關(guān)教程,通過索引網(wǎng)絡(luò)上的相關(guān)資料,為課設(shè)做了較為充分的準(zhǔn)備。在參考了相關(guān)材料及源程序,我對(duì)自己要做的課設(shè)內(nèi)容有了進(jìn)一步的了解,并對(duì) matlab 的使用有了更深的體會(huì)。 總體來說,此次的課程設(shè)計(jì),還是較為滿意的。它不但鞭策著我去鞏固 matlab 的基礎(chǔ)理論知識(shí),還提高了我對(duì) matlab 的實(shí)際操作運(yùn)用,使得理論與實(shí)踐相結(jié)合,為進(jìn)一步學(xué)習(xí) matlab 打下堅(jiān)實(shí)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論