圖形圖像課程設(shè)計---圖像銳化_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  圖形圖像論文</b></p><p>  論文題目: 圖 像 銳 化</p><p><b>  目錄</b></p><p>  實習(xí)目的…………………………………………3</p><p>  實習(xí)任務(wù)…………………………………………3</p><

2、p>  主要內(nèi)容…………………………………………3</p><p>  算法實現(xiàn)…………………………………………5</p><p>  實習(xí)總結(jié)………………………………………11</p><p>  參考文獻(xiàn)……………………………………………12</p><p><b>  實驗?zāi)康?lt;/b></p>

3、<p>  用MATLAB或其他的語言來實現(xiàn)數(shù)字圖像處理方面的一些操作;</p><p>  熟悉MATLAB7.1的一些基本函數(shù)及與數(shù)字圖像處理相關(guān)的函數(shù);</p><p>  熟悉圖形用戶界面(GUI),并用其來編寫界面;</p><p>  熟悉在界面(GUI)實現(xiàn)讀圖像,保存圖像,Robert算子、Sobel算子、Prewitt算子、Log算子、C

4、anny算子、zerocross算子進(jìn)行邊緣檢測。并能用MATLAB實現(xiàn)以上的功能;</p><p>  掌握從簡單到復(fù)雜的方法,一步一步的實現(xiàn)功能,并能耐心排錯,養(yǎng)成合作互助精神。</p><p><b>  實驗任務(wù)</b></p><p>  1.實現(xiàn)圖像的打開,顯示,保存操作。</p><p>  2.實現(xiàn)圖像的

5、邊緣檢測,如Robert算子邊緣檢測,Sobel算子邊緣檢測,Prewitt算子邊緣檢測,Log算子邊緣檢測,Canny算子邊緣檢測,zerocross算子邊緣檢測;</p><p>  3.實現(xiàn)整個界面的設(shè)計,編排,最終達(dá)到一種比較完美的效果。</p><p><b>  主要內(nèi)容</b></p><p>  整個程序的設(shè)計過程,大致上是按照

6、實習(xí)的任務(wù)順序來設(shè)計的?;驹O(shè)計過程如下所示:</p><p>  在剛剛接觸MATLAB的GUI設(shè)計時,還不太熟悉GUI。因而經(jīng)過了一段時間的資料查詢和書本學(xué)習(xí)以及和同學(xué)們討論過后,漸漸掌握了基本的GUI用戶交互界面的設(shè)計方法。</p><p>  首先是新建一個空白的GUI界面,然后根據(jù)功能的需要,往界面里拖動各個控件。在這個時候,整個界面的對齊和控件的擺放都需要經(jīng)過設(shè)計。由于我們所設(shè)

7、計的界面思路是:將所有需要實現(xiàn)的功能全部擺放在界面上,當(dāng)使用者進(jìn)入界面時就能直截了當(dāng)?shù)乜吹剿械臇|西,點擊控件就能實現(xiàn)想要的功能。所有功能都能在GUI 界面上直接找到。</p><p>  在設(shè)計任務(wù)上要求的有幾個大范圍,我們對各個任務(wù)的設(shè)計如下:</p><p>  文件的打開、顯示、保存。我們將文件的打開、保存以及程序退出放到GUI界面上,點擊各個選項就能實現(xiàn)相應(yīng)功能。可以打開在文件夾

8、‘MATLAB’中'*.png'、'*.tif'、'*jpg'、'*.bmp'、'*.gif'格式的圖像文件,并將其顯示到GUI界面中的“原始圖像”和“處理后圖像”?!拔募4妗眲t是將當(dāng)前“處理后圖像”以‘*.jpg’的形式保存到文件夾‘MATLAB’中。對于“圖像顯示”,我們的設(shè)計是:當(dāng)用戶一進(jìn)入GUI界面時,就能看到界面中已經(jīng)顯示出來的兩幅的圖像,它們就

9、是“待處理圖像”和“處理后圖像”。而后“待處理圖像”在整個功能實現(xiàn)過程中,除了“文件打開”功能會變換顯示的圖像之外,“待處理圖像”一直不做改變以便與“處理后圖像”形成對比。</p><p>  實現(xiàn)圖像的邊緣檢測。包括“Robert算子”、“Sobel算子”、“Prewitt算子”、“Log算子”、“Canny算子”"zerocross算子"這6個選擇。這6項均放在一個“button grou

10、p”——“邊緣檢測”中,每次點擊都只有一項“radio Button”起作用,分別對“待處理圖像”進(jìn)行處理后顯示到“處理后圖像”中,</p><p>  為了圖像處理的易于觀察性,我們添加了一個名為“恢復(fù)原圖”的“push Button”。當(dāng)使用者點擊該按鈕時,在“處理后圖像”中則會顯示與“原始圖像”相同的未經(jīng)過處理的圖像。這時,使用者可以像剛進(jìn)入GUI界面一樣進(jìn)行各種處理,若不滿意“處理后圖像”或者不下心點擊了

11、其它不需要的功能,則可以點擊該按鈕,使圖像復(fù)原。</p><p>  整個設(shè)計過程中,最重要的也是花費最多時間的部分就是為各個功能按鈕添加程序代碼,從圖像的讀入到處理后圖像的顯示,每個細(xì)節(jié)都需要考慮并且在實驗過程進(jìn)行中反復(fù)的糾錯和修改。</p><p>  設(shè)計完成之后整個界面如下:</p><p><b>  算法實現(xiàn)</b></p&g

12、t;<p>  讀取圖片,使用者可以從按鈕中讀出文件夾“MATLAB”中的圖像,并將其顯示到兩個坐標(biāo)軸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>  圖片保存。當(dāng)用戶想要對處理后圖像進(jìn)行保存時,可以通過按鈕實現(xiàn)功能,將“處理后圖像”即坐

17、標(biāo)軸axes2中的圖像文件保存到文件夾“MATLAB”中。在菜單編輯器中“保存”的Callback函數(shù)中加入如下程序代碼:</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>  程序退出。當(dāng)用戶點擊“退出”按鈕,則執(zhí)行整個GUI界面的退出功能。在菜單編輯器中“退出”的Callback子函數(shù)中添加如下代碼:</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) %關(guān)閉當(dāng)前Figure窗口句柄</p><p>  圖像的邊緣檢測。對于該功能的實現(xiàn),本程序在一個Button group——“邊緣檢測”中設(shè)置了6個radio Button,分別在每個按鈕的回調(diào)函數(shù)Callback中添

24、加代碼,每次用戶點擊該組按鈕時只有一個按鈕起作用,分別對同一圖像進(jìn)行邊緣檢測處理。所添加的程序如下:</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;  %恢復(fù)原圖</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>  總結(jié)</b></p><p>  雖然這次實習(xí)只有二個星期的時間,但是我們對圖像處理的各種方法及應(yīng)用有了更深的理解,學(xué)會了應(yīng)用MATLAB軟件及GUI來實現(xiàn)界面的操作和編程處理。MATLAB是我們在以前和以后的學(xué)習(xí)工作中都會經(jīng)常應(yīng)用到的軟件,但是在以前還是對其了解不足,操作不是很了解

33、,在實習(xí)之初便因為這個問題而無從下手。于是我們尋找了許多這方面的書籍以及應(yīng)用網(wǎng)絡(luò)教程來對其進(jìn)行學(xué)習(xí),逐漸的增強(qiáng)了對MATLAB及GUI的了解,能夠摸索著開始進(jìn)行編寫。實習(xí)中也遇到了很多問題,但通過查閱書籍、同學(xué)間討論、請教老師以及網(wǎng)上查找最終能夠得以解決,完成這次實習(xí)。</p><p>  通過這次實習(xí),我們學(xué)會了應(yīng)用MATLAB軟件來實現(xiàn)圖像處理中的一些重要的操作并且對MATLAB也能夠更加了解,對其的一些常見

34、函數(shù)以及與圖像處理相關(guān)的函數(shù)都比較了解,并能夠應(yīng)用這些函數(shù)來解決圖像處理的問題。GUI對于我們是一個新的知識,通過各方面的學(xué)習(xí),我們最終對GUI也有了比較深的了解,能夠很順利的應(yīng)用GUI來設(shè)計出適合并且美觀的界面。圖像處理是我們這學(xué)期的一門很重要的課程,在課上雖然學(xué)習(xí)了很多知識,但是不經(jīng)過自己動手操作而只看到書上的一些概念和處理的圖片并不能很清楚的了解到各種操作的效果,并且不動手操作,知識就只能局限于書本上。經(jīng)過這次實習(xí),不但能夠讓我們

35、再次復(fù)習(xí)了本學(xué)期所學(xué)的圖像處理的知識,加深了對這些知識的記憶,并且讓我們對圖像處理的各種處理方法有了更加直觀的了解,不但加深了記憶也能因此更加了解各種處理方法的應(yīng)用,可以用MATLAB軟件來對這些處理來實現(xiàn)。</p><p>  這次實習(xí)要實現(xiàn)的內(nèi)容比較多,其中有一些易操作的也有一些比較復(fù)雜的,在實習(xí)過程中也會遇到一些難以突破的問題,但是在這個過程中需要我們耐心的學(xué)習(xí),一步一步通過各種途經(jīng)學(xué)習(xí)到解決的方法,也培養(yǎng)

36、了我們的耐心和學(xué)習(xí)的能力。這次是四人一組的實習(xí),因此合理的分工合作也是很重要的,通過實習(xí)也培養(yǎng)了我們之間分工協(xié)作互幫互助的精神。</p><p>  總體來說,我們的這次實習(xí)還是比較成功的,較為成功的完成了我們的實習(xí)任務(wù),并且達(dá)到到了我們實習(xí)的目的。</p><p><b>  參考文獻(xiàn)</b></p><p>  《MATLAB 7.X圖像處

37、理》 :賀興華、周媛媛、王繼陽、周暉等編著,人民郵電出版社 2006年版</p><p>  《MATLAB GUI設(shè)計學(xué)習(xí)手記》 :羅華飛編著,北京航空航天大學(xué)出版社2009版。</p><p>  《數(shù)字圖像處理(MATLAB版)》 :岡薩雷斯著、阮秋琦等譯,電子工業(yè)出版社2005版。</p><p>  《MATLAB基礎(chǔ)及其應(yīng)用教程》 :周開利、鄧春暉主編

38、,北京大學(xué)出版社2007版。</p><p>  《MATLAB在信號與圖像處理中的應(yīng)用》 :朱習(xí)軍、隋思漣、張賓、劉尊年主編,電子工業(yè)出版社2009版。</p><p>  《MATLAB語言與工程數(shù)據(jù)分析》 :隋思漣、王巖主編,清華大學(xué)出版社2009版。</p><p>  《MATLAB函數(shù)速查手冊》 :鄧薇編著,人民郵電出版社2008版。</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論