

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 圖形圖像論文</b></p><p> 論文題目: 圖 像 銳 化</p><p><b> 目錄</b></p><p> 實習目的…………………………………………3</p><p> 實習任務…………………………………………3</p><
2、p> 主要內容…………………………………………3</p><p> 算法實現(xiàn)…………………………………………5</p><p> 實習總結………………………………………11</p><p> 參考文獻……………………………………………12</p><p><b> 實驗目的</b></p>
3、<p> 用MATLAB或其他的語言來實現(xiàn)數字圖像處理方面的一些操作;</p><p> 熟悉MATLAB7.1的一些基本函數及與數字圖像處理相關的函數;</p><p> 熟悉圖形用戶界面(GUI),并用其來編寫界面;</p><p> 熟悉在界面(GUI)實現(xiàn)讀圖像,保存圖像,Robert算子、Sobel算子、Prewitt算子、Log算子、C
4、anny算子、zerocross算子進行邊緣檢測。并能用MATLAB實現(xiàn)以上的功能;</p><p> 掌握從簡單到復雜的方法,一步一步的實現(xiàn)功能,并能耐心排錯,養(yǎng)成合作互助精神。</p><p><b> 實驗任務</b></p><p> 1.實現(xiàn)圖像的打開,顯示,保存操作。</p><p> 2.實現(xiàn)圖像的
5、邊緣檢測,如Robert算子邊緣檢測,Sobel算子邊緣檢測,Prewitt算子邊緣檢測,Log算子邊緣檢測,Canny算子邊緣檢測,zerocross算子邊緣檢測;</p><p> 3.實現(xiàn)整個界面的設計,編排,最終達到一種比較完美的效果。</p><p><b> 主要內容</b></p><p> 整個程序的設計過程,大致上是按照
6、實習的任務順序來設計的。基本設計過程如下所示:</p><p> 在剛剛接觸MATLAB的GUI設計時,還不太熟悉GUI。因而經過了一段時間的資料查詢和書本學習以及和同學們討論過后,漸漸掌握了基本的GUI用戶交互界面的設計方法。</p><p> 首先是新建一個空白的GUI界面,然后根據功能的需要,往界面里拖動各個控件。在這個時候,整個界面的對齊和控件的擺放都需要經過設計。由于我們所設
7、計的界面思路是:將所有需要實現(xiàn)的功能全部擺放在界面上,當使用者進入界面時就能直截了當地看到所有的東西,點擊控件就能實現(xiàn)想要的功能。所有功能都能在GUI 界面上直接找到。</p><p> 在設計任務上要求的有幾個大范圍,我們對各個任務的設計如下:</p><p> 文件的打開、顯示、保存。我們將文件的打開、保存以及程序退出放到GUI界面上,點擊各個選項就能實現(xiàn)相應功能??梢源蜷_在文件夾
8、‘MATLAB’中'*.png'、'*.tif'、'*jpg'、'*.bmp'、'*.gif'格式的圖像文件,并將其顯示到GUI界面中的“原始圖像”和“處理后圖像”?!拔募4妗眲t是將當前“處理后圖像”以‘*.jpg’的形式保存到文件夾‘MATLAB’中。對于“圖像顯示”,我們的設計是:當用戶一進入GUI界面時,就能看到界面中已經顯示出來的兩幅的圖像,它們就
9、是“待處理圖像”和“處理后圖像”。而后“待處理圖像”在整個功能實現(xiàn)過程中,除了“文件打開”功能會變換顯示的圖像之外,“待處理圖像”一直不做改變以便與“處理后圖像”形成對比。</p><p> 實現(xiàn)圖像的邊緣檢測。包括“Robert算子”、“Sobel算子”、“Prewitt算子”、“Log算子”、“Canny算子”"zerocross算子"這6個選擇。這6項均放在一個“button grou
10、p”——“邊緣檢測”中,每次點擊都只有一項“radio Button”起作用,分別對“待處理圖像”進行處理后顯示到“處理后圖像”中,</p><p> 為了圖像處理的易于觀察性,我們添加了一個名為“恢復原圖”的“push Button”。當使用者點擊該按鈕時,在“處理后圖像”中則會顯示與“原始圖像”相同的未經過處理的圖像。這時,使用者可以像剛進入GUI界面一樣進行各種處理,若不滿意“處理后圖像”或者不下心點擊了
11、其它不需要的功能,則可以點擊該按鈕,使圖像復原。</p><p> 整個設計過程中,最重要的也是花費最多時間的部分就是為各個功能按鈕添加程序代碼,從圖像的讀入到處理后圖像的顯示,每個細節(jié)都需要考慮并且在實驗過程進行中反復的糾錯和修改。</p><p> 設計完成之后整個界面如下:</p><p><b> 算法實現(xiàn)</b></p&g
12、t;<p> 讀取圖片,使用者可以從按鈕中讀出文件夾“MATLAB”中的圖像,并將其顯示到兩個坐標軸axes1和axes2中。在菜單編輯器中“打開”的Callback中加入如下程序代碼:</p><p> function pushbutton1_Callback(hObject, eventdata, handles)</p><p> % hObject ha
13、ndle to pushbutton1 (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p>&l
14、t;p> %global im</p><p> [filename,pathname]=...</p><p> uigetfile({'*.*';'*.bmp';'*.jpg';'*.tif';'*.png'},'selecet pictrue');</p><
15、;p> if isequal(filename,0)||isequal(pathname,0)</p><p><b> return;</b></p><p><b> end</b></p><p> str=[pathname filename];</p><p> im=im
16、read(str);</p><p> axes(handles.axes1);</p><p> imshow(im);</p><p> setappdata(handles.figure1,'im',im);</p><p> 圖片保存。當用戶想要對處理后圖像進行保存時,可以通過按鈕實現(xiàn)功能,將“處理后圖像”即坐
17、標軸axes2中的圖像文件保存到文件夾“MATLAB”中。在菜單編輯器中“保存”的Callback函數中加入如下程序代碼:</p><p> function pushbutton2_Callback(hObject, eventdata, handles)</p><p> % hObject handle to pushbutton2 (see GCBO)</p>
18、<p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> %global BW</p><p>
19、 [filename,pathname]=...</p><p> uiputfile({'*.tif';'*.jpg';'*.png';'*.bmp'},'save pictrue');</p><p> if isequal(filename,0)||isequal(pathname,0)</p
20、><p><b> return</b></p><p><b> else</b></p><p> str=[pathname filename]</p><p> axes(handles.axes2);</p><p> im=getimage(handles.
21、axes2);</p><p> imwrite(im,str);</p><p><b> End</b></p><p> 程序退出。當用戶點擊“退出”按鈕,則執(zhí)行整個GUI界面的退出功能。在菜單編輯器中“退出”的Callback子函數中添加如下代碼:</p><p> function pushbutton
22、3_Callback(hObject, eventdata, handles)</p><p> % hObject handle to pushbutton3 (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p>
23、% handles structure with handles and user data (see GUIDATA)</p><p> close(gcf) %關閉當前Figure窗口句柄</p><p> 圖像的邊緣檢測。對于該功能的實現(xiàn),本程序在一個Button group——“邊緣檢測”中設置了6個radio Button,分別在每個按鈕的回調函數Callback中添
24、加代碼,每次用戶點擊該組按鈕時只有一個按鈕起作用,分別對同一圖像進行邊緣檢測處理。所添加的程序如下:</p><p> function uipanel5_SelectionChangeFcn(hObject, eventdata, handles)</p><p> global BW %定義全局變量</p><p> im=getappdata(hand
25、les.figure1,'im');</p><p> str=get(hObject,'string'); %拿到所選按鈕的名稱</p><p> axes(handles.axes2); %使用第二個axes</p><p> switch str %選擇語句</p><p><b&g
26、t; %恢復原圖</b></p><p> case'Initial' %點擊原圖按鈕</p><p> imshow(im); %顯示原圖</p><p><b> %Robert算子</b></p><p> case'Roberts' %點擊Roberts
27、邊緣檢測按鈕</p><p> BW=edge(im,'roberts');</p><p> imshow(BW);</p><p><b> %Sobel算子</b></p><p> case'Sobel' %點擊Sobel邊緣檢測按鈕</p><p&g
28、t; BW=edge(im,'sobel',0.02);</p><p> imshow(BW);</p><p> %Prewitt算子</p><p> case'Prewitt' %點擊Prewitt邊緣檢測按鈕</p><p> BW=edge(im,'prewitt',0.
29、04); </p><p> imshow(BW);</p><p><b> %LOG算子</b></p><p> case'Log' %點擊Log邊緣檢測按鈕 </p><p> BW=edge(im, 'log',0.003);</p><
30、p> imshow(BW);</p><p><b> %Cannny算子</b></p><p> case'Canny' %點擊Canny邊緣檢測按鈕</p><p> BW=edge(im,'canny',0.2);</p><p> imshow(BW);<
31、/p><p> case'Zerocross' %點擊Zerocross邊緣檢測按鈕</p><p> BW=edge(im,'zerocross',0.01);</p><p> imshow(BW);</p><p><b> end;</b></p><p&g
32、t; guidata(hObject,handles)</p><p><b> 總結</b></p><p> 雖然這次實習只有二個星期的時間,但是我們對圖像處理的各種方法及應用有了更深的理解,學會了應用MATLAB軟件及GUI來實現(xiàn)界面的操作和編程處理。MATLAB是我們在以前和以后的學習工作中都會經常應用到的軟件,但是在以前還是對其了解不足,操作不是很了解
33、,在實習之初便因為這個問題而無從下手。于是我們尋找了許多這方面的書籍以及應用網絡教程來對其進行學習,逐漸的增強了對MATLAB及GUI的了解,能夠摸索著開始進行編寫。實習中也遇到了很多問題,但通過查閱書籍、同學間討論、請教老師以及網上查找最終能夠得以解決,完成這次實習。</p><p> 通過這次實習,我們學會了應用MATLAB軟件來實現(xiàn)圖像處理中的一些重要的操作并且對MATLAB也能夠更加了解,對其的一些常見
34、函數以及與圖像處理相關的函數都比較了解,并能夠應用這些函數來解決圖像處理的問題。GUI對于我們是一個新的知識,通過各方面的學習,我們最終對GUI也有了比較深的了解,能夠很順利的應用GUI來設計出適合并且美觀的界面。圖像處理是我們這學期的一門很重要的課程,在課上雖然學習了很多知識,但是不經過自己動手操作而只看到書上的一些概念和處理的圖片并不能很清楚的了解到各種操作的效果,并且不動手操作,知識就只能局限于書本上。經過這次實習,不但能夠讓我們
35、再次復習了本學期所學的圖像處理的知識,加深了對這些知識的記憶,并且讓我們對圖像處理的各種處理方法有了更加直觀的了解,不但加深了記憶也能因此更加了解各種處理方法的應用,可以用MATLAB軟件來對這些處理來實現(xiàn)。</p><p> 這次實習要實現(xiàn)的內容比較多,其中有一些易操作的也有一些比較復雜的,在實習過程中也會遇到一些難以突破的問題,但是在這個過程中需要我們耐心的學習,一步一步通過各種途經學習到解決的方法,也培養(yǎng)
36、了我們的耐心和學習的能力。這次是四人一組的實習,因此合理的分工合作也是很重要的,通過實習也培養(yǎng)了我們之間分工協(xié)作互幫互助的精神。</p><p> 總體來說,我們的這次實習還是比較成功的,較為成功的完成了我們的實習任務,并且達到到了我們實習的目的。</p><p><b> 參考文獻</b></p><p> 《MATLAB 7.X圖像處
37、理》 :賀興華、周媛媛、王繼陽、周暉等編著,人民郵電出版社 2006年版</p><p> 《MATLAB GUI設計學習手記》 :羅華飛編著,北京航空航天大學出版社2009版。</p><p> 《數字圖像處理(MATLAB版)》 :岡薩雷斯著、阮秋琦等譯,電子工業(yè)出版社2005版。</p><p> 《MATLAB基礎及其應用教程》 :周開利、鄧春暉主編
38、,北京大學出版社2007版。</p><p> 《MATLAB在信號與圖像處理中的應用》 :朱習軍、隋思漣、張賓、劉尊年主編,電子工業(yè)出版社2009版。</p><p> 《MATLAB語言與工程數據分析》 :隋思漣、王巖主編,清華大學出版社2009版。</p><p> 《MATLAB函數速查手冊》 :鄧薇編著,人民郵電出版社2008版。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論