版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄第一章 設計任務及要求11.1設計依據(jù)11.2課程設計內容11.3課程設計要求1第二章 設計原理22.1設計題目分析22.2 設計原理2第三章 設計實現(xiàn)43.1 菜單欄編輯43.2 控件及代碼的加入63.2.2 控件按鈕的創(chuàng)建73.2.3 控件代碼加入83.4 圖像灰度處理93.5 亮度調節(jié)93.6 底片處理113.7 直方圖均衡化12第四章 結果分析及總結13第五章 參考文獻14第六章 附錄1514第一章 設計任務及要求1.1設計依據(jù)在掌握數(shù)字圖像處理基本算法的基礎上,利用MATLAB軟件設計具有指定功能的1.2課程設計內容設計一個或包含子界面的圖形用戶界面,該界面可以讀入任意格式的圖片
2、并在一個圖片窗口中顯示,同時包含下拉列表或按鈕等控件,用戶可以從中選擇不同的圖像增強功能及參數(shù),例如:對比度調節(jié),灰度變換,圖像銳化,圖像濾波等功能,讀入的圖片會根據(jù)選擇在新的圖片窗口中顯示不同的處理結果。 1.3課程設計要求(1)要求每個同學獨立完成設計任務。(2)課程設計說明書封面格式要求見課程設計說明書格式要求。(3)課程設計的說明書要求簡潔、通順,圖像表達內容完整、清楚、規(guī)范。(4)課程設計說明書要求:(5)說明題目的設計原理和思路、采用方法及設計流程。(6)可采用圖表或文字對圖形用戶界面各子模塊的功能以及各子模塊之間的關系做較詳細的描述。(7)詳細說明MATLAB代碼的編寫流程。(8
3、)采用圖像及文字詳細說明各功能的演示結果。(9)界面功能自行增加,涉及的算法越多越好。第2章 設計原理2.1設計題目分析課程設計題目要求運用所學的圖像增強技術知識設計一個GUI界面程序,通過界面控件對給定圖像完成各種圖像增強的功能。功能中包含一系列圖像增強方式,有對比度調節(jié),灰度變換,圖像銳化,圖像濾波等功能。在菜單欄中還有圖像的打開及保存等一系列的按鈕。2.2 設計原理通過學習數(shù)字圖像處理這一門學科,以及Matlab這一軟件。制作圖像處理GUI人機交換界面,以方便使用。設計中,通過界面上的控件操作對圖像進行簡單的處理,而控件通過后臺代碼實現(xiàn)各種不同的操作功能。在界面中,人們能看到的控件分為三
4、大類:圖像顯示模塊,功能控件模塊,以及菜單欄模塊。(1) 圖像顯示模塊:打開原圖像即沒有處理過的圖像會在第一個圖像顯示窗口中顯示,第二個窗口為顯示通過一定處理后的圖像。 圖 1 顯示模塊(2) 功能控件模塊:打開與圖像后,通過功能控件對對象進行簡單的處理操作,使得通過不同控件操作后的圖像在第二個顯示框中顯示。創(chuàng)建完成界面效果圖如下。 圖 2 創(chuàng)建完成后的GUI界面 第3章 設計實現(xiàn)3.1 菜單欄編輯 通過Menu Editor創(chuàng)建如下菜單,通過以下菜單來打開圖像即保存圖像功能按鍵實現(xiàn)圖像的讀取與保存。 圖 3 菜單欄編輯 圖 4 打開文件圖像該菜單按鈕是通過利用matlab中 “ uigetf
5、ile”、“imread” “imshow”實現(xiàn)圖像文件的讀取與顯示:主程序:filename,pathname=uigetfile('*.jpg''*.bmp''*.tif''*.*','載入圖像');if isequal(filename,0)|isequal(pathname,0) errordlg('沒有選中文件','出錯'); return;else file=pathname,filename; global S %設置一個全局變量S,保存初始圖像路徑,以便之后的還原操作
6、 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);End利用“uiputfile”、“imwrite”函數(shù)實現(xiàn)圖像文件的保存。 圖 5 圖像保存主程序
7、如下: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 handles and user data (see GUIDATA) sfilename ,sfilepath=uiputfile('*.jpg''*.bmp''*.tif''*.*
8、','保存圖像','untitled.jpg'); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgbox('你按了取消鍵','保存失敗'); end3.2 控件及代碼的加入3.2.1 GUI窗口的創(chuàng)建 打開 Matlab后,在命令行里面敲入命令“Guide”后按回車鍵或是在菜單欄“File”、“New”、“Gui”創(chuàng)建GUI界面,然后彈出一
9、個對話框,用鼠標單擊“OK”,即可創(chuàng)建一個新的GUI界面。打開界面效果圖如下: 圖 6 創(chuàng)建GUI界面 圖 7 創(chuàng)建GUI界面 3.2.2 控件按鈕的創(chuàng)建在創(chuàng)建GUI界面完成后,在界面的左邊有一系列的控件按鈕,只需要用鼠標點擊,然后在界面中再次單擊及拖動鼠標即可,大小及位置在界面中更改。這樣就可以創(chuàng)建所需要的控件按鈕。效果圖如下: 圖 8 按鈕的創(chuàng)建創(chuàng)建按鈕完成以后,雙擊按鈕可以更改控件的屬性。效果圖如下: 圖 9 按鈕屬性窗口3.2.3 控件代碼加入創(chuàng)建控件按鈕完成以后,鼠標右擊控件按鈕,選擇“View callbacks” “Callback”單擊,出現(xiàn).M文件的程序代碼,在控件按鈕代碼“
10、function pushbutton1_Callback(hObject, eventdata, handles)”的下方加入已經改好的控件功能代碼,后單擊菜單欄上面的“”即可運行程序。 圖 10 .M文件代碼通過這樣的方法可以加入多個功能控件,實現(xiàn)不同的圖像處理功能的GUI界面。 3.4 圖像灰度處理 通過界面上的灰度處理控件對彩色圖像進行灰度處理,使得原來本是彩色的圖片通過處理后在第二個顯示框中變成灰色圖像。 圖 11 灰度處理主要程序:function pushbutton6_Callback(hObject, eventdata, handles)global Taxes(handl
11、es.axes2);13 / 50T=getimage;x=rgb2gray(handles.img);imshow(x);handles.img=x;guidata(hObject,handles);該程序是利用rgb2gray(X)函數(shù)對其他圖像進行灰度圖像的轉化。3.5 亮度調節(jié)通過“載入圖像”控件或是菜單欄中的“打開”菜單將圖像在GUI界面上的第一個圖像顯示框中打開,然后按下控件“亮度調節(jié)”,會彈出一個所需要調節(jié)亮度的值的對話框,在里面輸入數(shù)值以后,在第二個顯示框中會顯示出通過“亮度調節(jié)”控件處理后的圖片。 圖 12 輸入亮度值 圖 13 亮度對比前后主要程序:function pus
12、hbutton5_Callback(hObject, eventdata, handles)global Taxes(handles.axes2);T=getimage;prompt='亮度調節(jié)'defans='1'p=inputdlg(prompt,'input',1,defans);9 / 50p1=str2num(p1);y=imadjust(handles.img, , ,p1); imshow(y);handles.img=y;guidata(hObject,handles);程序通過:defans='1'p=input
13、dlg(prompt,'input',1,defans);定義亮度對話框,而通過函數(shù)語句p1=str2num(p1);y=imadjust(handles.img, , ,p1);對圖像進行亮度的轉換。3.6 底片處理通過“載入圖像”控件或是菜單欄中的“打開”菜單將圖像在GUI界面上的第一個圖像顯示框中打開,然后按下控件“底片處理”按鈕操作,對圖像進行圖像的底片處理,效果圖如下。 圖 14 底片處理前后對照主程序:function pushbutton9_Callback(hObject, eventdata, handles)axes (handles.axes2);T=ge
14、timage;f=imcomplement(handles.img); %圖像取反imshow(f);handles.img=f;guidata(hObject,handles);程序主要通過函數(shù)f=imcomplement(handles.img); 實現(xiàn)圖像的取反功能。 3.7 直方圖均衡化 直方圖均衡化的基本思想就是把原始圖像不均衡的直方圖變換為均勻的分布,這樣就增加了灰度值的動態(tài)范圍,從而達到增強圖像整體對比度的效果。經過GUI界面處理前后的照片對比效果如下: 圖 15 直方圖均衡化主程序:set(handles.axes2,'HandleVisibility',
15、9;ON');axes(handles.axes2);h=histeq(handles.img); %直方圖均衡化imshow(h);第4章 結果分析及總結 通過幾周的時間學習GUI界面的制作以及所學課程知識的再次學習,完成了此次課程設計。在過程當中,軟件測試基本成功,完成課題所要求的圖像增強功能的實現(xiàn)。但一些功能只支持灰度圖像的處理。還有的功能沒有實現(xiàn),我自己認為是程序有錯誤,但是檢查很久都沒有檢查出來,還有一個很大的問題就是當程序運行以后回頭在看控件代碼時,總是會有亂碼出現(xiàn),在程序當中改過來以后還是會自動的改為亂碼,這一點也是我沒有明白的原因。 通過這次課程設計,使我對 matla
16、b 的使用有了進一步的了解和熟悉。當我第一次拿到此次的課題時,感到有些無所適從。雖然,曾經學習過matlab 的課程,但由于對 matlab 的學習更多的只是停留在理論上的學習,在課時內的試驗也只是簡單的基礎性試驗, 所以對 matlab 實際運用不是很熟練。雖然對課題感到很懵懂,但是通過在網(wǎng)上學習視頻以后,我開始找到了解決問題的路徑。我選擇的是“利用 matlab 的 GUI 程序設計一個簡單實用的圖像處理程序”這一課題。本課題的重點是句柄的使用、GUI 的使用以及 matlab 中相關圖像處理函數(shù)使用。為此,我利用課余時間,重新復習了 matlab 教材,專門借閱了利用 matlab 進行圖像處理的相關教程,通過索引網(wǎng)絡上的相關資料,為課設做了較為充分的準備。在參考了相關材料及源程序,我對自己要做的課設內容有了進一步的了解,并對 matlab 的使用有了更深的體會。 總體來說,此次的課程設計,還是較為滿意的。它不但鞭策著我去鞏固 matlab 的基礎理論知識,還提高了我對 matlab 的實際操作運用,使得理論與實踐相結合,為進一步學習 matlab 打下堅實的基礎;同時,在實踐的工程中,也讓我體會到一種努力
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級數(shù)學上冊四兩三位數(shù)除以一位數(shù)第3課時除法的驗算教案蘇教版
- 小學生安全備課課件
- 2021中級電氣工程師完整復習試題及答案
- 小學生課堂發(fā)言制度管理
- 三年級健康教學參考計劃范文5篇
- 肝癌微波消融術
- 《愚人節(jié)中英文》課件
- 注冊安全工程師(安全生產管理知識)考試真題及試題答案
- 機能學實驗.呼吸功能不全
- 《倉儲管理導論》課件
- 淮安市2023-2024學年七年級上學期期末歷史試卷(含答案解析)
- 血液透析室護士長年終總結報告
- 露天礦山邊坡穩(wěn)定性分析與防治措施
- 培養(yǎng)學生深度思考的能力
- 【瑞幸咖啡財務分析報告(附財務報表)5300字(論文)】
- 過敏性鼻炎-疾病研究白皮書
- 烏頭堿中毒急診科培訓課件-
- 三軸水泥攪拌樁施工質量措施
- 貴州茅臺2023審計報告
- 幼兒園學前教育五以內的數(shù)字比大小練習題
- 高速鐵路沉降觀測與評估
評論
0/150
提交評論