圖像分割程序設(shè)計_第1頁
圖像分割程序設(shè)計_第2頁
圖像分割程序設(shè)計_第3頁
圖像分割程序設(shè)計_第4頁
圖像分割程序設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、*實踐教學(xué)實踐教學(xué)*蘭州理工大學(xué)蘭州理工大學(xué)計算機與通信學(xué)院2012 年秋季學(xué)期 圖像處理圖像處理 綜合訓(xùn)練綜合訓(xùn)練題 目: 圖像分割程序設(shè)計 專業(yè)班級: 姓 名: 學(xué) 號: 指導(dǎo)教師: 成 績: 目目 錄錄摘 要.1一、前言.2二、算法分析與描述.3三、詳細設(shè)計過程.5四、調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法.8五、程序運行截圖及其說明.8六、簡單操作手冊.12設(shè)計總結(jié).15參考資料.16致謝.17附錄.18摘摘 要要圖像分割就是從圖像中將某個特定區(qū)域與其他部分進行分離并提取出來的處理圖像分割處理實際上就是區(qū)分圖像中的“前景目標”和“背景”所以通常又稱之為圖像的二值化處理。圖像分割就是把圖像分

2、成若干個特定的、具有獨特性質(zhì)的區(qū)域并提出感興趣目標的技術(shù)和過程。它是由圖像處理到圖像分析的關(guān)鍵步驟?,F(xiàn)有的圖像分割方法主要分以下幾類:基于閾值的分割方法、基于區(qū)域的分割方法、基于邊緣的分割方法以及基于特定理論的分割方法等。近年來,研究人員不斷改進原有的圖像分割方法并把其它學(xué)科的一些新理論和新方法用于圖像分割,提出了不少新的分割方法。關(guān)鍵詞:圖像分割;閾值;二值化;一、前言一、前言 圖形圖像處理的應(yīng)用領(lǐng)域涉及人類生活和工作的各個方面,它是從 60年代以來隨計算機的技術(shù)和 vlsi 的發(fā)展而產(chǎn)生、發(fā)展和不斷成熟起來的一個新技術(shù)領(lǐng)域理論上和實際應(yīng)用上都并取得了巨大的成就。數(shù)字圖像處理與模擬圖像處理的

3、根本不同在于,它不會因圖像的存儲、傳輸或復(fù)制等一系列變換操作而導(dǎo)致圖像質(zhì)量的退化,所以圖形圖像的處理在我們的生活中又很重要的作用。 在對圖像的研究和應(yīng)用中,人們往往只對圖像中的某些部分感興趣。這些部分通常稱為目標或前景,它們一般對應(yīng)圖像中特定的、具體獨特性質(zhì)的區(qū)域。為了辨識和分析目標,需要將它們分別提取出來,在此基礎(chǔ)上才有可能對目標進一步利用。圖像分割就是指把圖像分成各具特性的區(qū)域并提取出感興趣的目標的技術(shù)和過程。在圖象分析中,通常需將所關(guān)心的目標從圖象中提取出來,即圖象的分割。圖象分割在圖象分析,圖象識別,圖象檢測等方面占有非常重要的位置。二、算法分析與描述二、算法分析與描述1.圖像分割的數(shù)

4、學(xué)描述令集合 r 代表整個區(qū)域,對 r 的分割可看作將 r 分成若干個滿足以下 5 個條件的非空子集(子區(qū)域)r1 ,r1 ,rn (1)所有子集構(gòu)成圖像;(2)各子集不重疊;(3)每個子集中的像素有某種共同的屬性;(4)不同的子集屬性不同;(5)每個子集中的所有像素應(yīng)該是連通的。2. 基于灰度直方圖的峰谷法 圖像的灰度直方圖必須是雙峰的直方圖的左側(cè)峰為亮度較高的部分,這部分恰好對應(yīng)于較暗的背景部分,直方圖的右側(cè)為亮度較高的部分,這里恰好對應(yīng)于會面中圖案部分。顯然灰度直方圖的峰谷法是一種有效且非常簡單的閾值方法,但是該方法有一個局限性就是灰度值放度必須是雙峰的。3. 區(qū)域生長區(qū)域生長的基本思想

5、是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域。具體先對每個需要分割的區(qū)域找一個種子像素作為生長的起點,然后將種子像素周圍鄰域中與種子像素有相同或相似性質(zhì)的像素(根據(jù)某種事先確定的生長或相似準則來判定)合并到種子像素所在的區(qū)域中。將這些新像素當作新的種子像素繼續(xù)進行上面的過程,直到再沒有滿足條件的像素可被包括進來。這樣一個區(qū)域就長成了。區(qū)域生長需要選擇一組能正確代表所需區(qū)域的種子像素,確定在生長過程中的相似性準則,制定讓生長停止的條件或準則。相似性準則可以是灰度級、彩色、紋理、梯度等特性。選取的種子像素可以是單個像素,也可以是包含若干個像素的小區(qū)域。大部分區(qū)域生長準則使用圖像的局部性質(zhì)。生長準則可根據(jù)

6、不同原則制定,而使用不同的生長準則會影響區(qū)域生長的過程。 區(qū)域生長法的優(yōu)點是計算簡單,對于較均勻的連通目標有較好的分割效果。它的缺點是需要人為確定種子點,對噪聲敏感,可能導(dǎo)致區(qū)域內(nèi)有空洞。另外,它是一種串行算法,當目標較大時,分割速度較慢,因此在設(shè)計算法時,要盡量提高效率。3、詳細設(shè)計過程詳細設(shè)計過程1.流程圖2.區(qū)域生長法區(qū)域生長法的數(shù)學(xué)表達:一致性判別條件:灰度變化閾值:生長準則: 為待測生長的點領(lǐng)域內(nèi)的灰度值matlab 代碼:global a0a0=getimage;axes(handles.axes2);seed=100,220;讀入圖像對輸出的圖像進行保存對保存圖像讀取輸出閾值處理

7、結(jié)果輸出區(qū)域生長處理結(jié)果輸出原圖像退出程序結(jié)束開 始thresh=15;a=rgb2gray(a0);a=imadjust(a,min(min(double(a)/255,max(max(double(a)/255,);a=double(a); b=a; r,c=size(b); n=r*c;pixel_seed=a(seed(1),seed(2);q=seed(1) seed(2);top=1;m=zeros(r,c);m(seed(1),seed(2)=1;count=1;while top=0r1=q(1,1);c1=q(1,2);p=a(r1,c1);dge=0;for i=-1:1f

8、or j=-1:1if r1+i0 & c1+j0if abs(a(r1+i,c1+j)-p)=ntop=1;endq=q(2:top,:);top=top-1;endimshow(b,);title( 區(qū)域生長分割);handles.img=b;guidata(hobject,handles);3. 基于灰度直方圖的峰谷法 由封谷法的概念可得 matalb 代碼:global iaxes(handles.axes2);i=getimage;if ndims(i) = 3i = rgb2gray(i);endfxy = imhist(i, 256); %統(tǒng)計每個灰度值的個數(shù)%figure;%s

9、ubplot(2, 2, 1); %imshow(i, ); %title(原圖)%subplot(2, 2, 2); plot(fxy); %畫出灰度直方圖%title(直方圖)p1 = input num:;p2 = 180;p3 = inputdlg(p1,input num:1256,1,p2);p = str2num(p31); p = p/255;bw = im2bw(i, p); %小于閾值的為黑,大于閾值的為白%subplot(2, 2, 3);4、調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法問題一:最初的調(diào)試過程中總是區(qū)域生長算法調(diào)試不成功,并且 ma

10、tlab gui 的設(shè)計過程也出現(xiàn)了很多問題,最后發(fā)現(xiàn)調(diào)用函數(shù)方法錯誤,最后通過查 matlab 基礎(chǔ)資料得到解決。問題二:在設(shè)計 gui 的時候每次都是處理后的圖像坐標位置沒有放到固定的區(qū)域,通過查找 matlab gui 設(shè)計資料解決了問題。5、程序運行截圖及其說明程序運行截圖及其說明1.文件打開讀取處理圖片截圖如下:圖 6.1 原圖2.點擊峰谷法分割圖像并截圖得:圖 6.2 峰谷法分割3.點擊區(qū)域生長法分割圖像截圖得:圖 6.3 區(qū)域生長法分割六、簡單操作手冊六、簡單操作手冊圖 6.1 “文件打開”按路徑打開圖像文件圖 6.2 “保存”按路徑保存處理完的圖像文件圖 6.3 “峰谷法分割圖

11、像”對已打開的圖像按閾值進行峰谷法分割處理 圖 6.4 “區(qū)域生長法分割圖像” 對已打開的圖像進行區(qū)域生長法分割處理設(shè)計總結(jié)設(shè)計總結(jié)我們知道人類所獲得信息的 70%以上來自視覺,換句話說人類將用自己雙眼所觀察到的世界進行縝密的分析與思考之后,推動了科技的進步也推動了整個世界的發(fā)展。經(jīng)過了為期兩周的課程設(shè)計,我深刻的感受到了圖像處理的強大,與此同時,感受到更多的就是編程的辛苦,只要一個小地方出錯以后,就要對整個程序進行又一遍的檢查,真可為是牽一發(fā)而動全身呀,在當初做的時候,雖讓將每一個功能模塊的代碼都寫出來,但是在將他們整合起來的時候,在傳值和做圖形用戶界面的時候出現(xiàn)了很大的問題,最終還是通過網(wǎng)

12、絡(luò)和咨詢同學(xué)才得以解決問題,所以在這要衷心的感謝網(wǎng)絡(luò)和同學(xué)們。參考資料參考資料1 朱 虹. 數(shù)字圖像處理基礎(chǔ)m. 科學(xué)出版社, 20052 r c.gonzalez, r e.woods 著,阮秋琦,阮宇智等譯.數(shù)字圖像處理(第 2 版).北京:電子工業(yè)出版社,20033 k.r.castleman. 數(shù)字圖像處理.北京:電子工業(yè)出版社,20024 章毓晉.圖像處理與分析-圖像工程(上冊),清華大學(xué),20015r c.gonzalez, r e.woods, s l. eddins 著,阮秋琦,阮宇智等譯.數(shù)字圖像處理(matlab 版).北京:電子工業(yè)出版社,2005致謝致謝首先,我要感謝我

13、的指導(dǎo)老師,他嚴謹細致、一絲不茍的作風(fēng)一直是我生活、學(xué)習(xí)中的榜樣,給了起到了指明燈的作用;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪,讓我很快就感受到了設(shè)計的快樂并融入其中。其次我要感謝同組同學(xué)對我的幫助和指點,沒有他們的幫助和提供資料,沒有他們的鼓勵和加油,這次課程設(shè)計就不會如此的順利進行,最后就是要感謝網(wǎng)絡(luò)給我們提供了大量的資料。附錄附錄function varargout = keshe(varargin)% keshe matlab code for keshe.fig% keshe, by itself, creates a new keshe or raises the e

14、xisting% singleton*.% h = keshe returns the handle to a new keshe or the handle to% the existing singleton*.% keshe(callback,hobject,eventdata,handles,.) calls the local% function named callback in keshe.m with the given input arguments.% keshe(property,value,.) creates a new keshe or raises the% ex

15、isting singleton*. starting from the left, property value pairs are% applied to the gui before keshe_openingfcn gets called. an% unrecognized property name or invalid value makes property application% stop. all inputs are passed to keshe_openingfcn via varargin.% *see gui options on guides tools men

16、u. choose gui allows only one% instance to run (singleton).% see also: guide, guidata, guihandles% edit the above text to modify the response to help keshe% last modified by guide v2.5 10-jan-2013 17:51:00% begin initialization code - do not editgui_singleton = 1;gui_state = struct(gui_name, mfilena

17、me, . gui_singleton, gui_singleton, . gui_openingfcn, keshe_openingfcn, . gui_outputfcn, keshe_outputfcn, . gui_layoutfcn, , . gui_callback, );if nargin & ischar(varargin1) gui_state.gui_callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:);else gui_main

18、fcn(gui_state, varargin:);end% end initialization code - do not edit% - executes just before keshe is made visible.function keshe_openingfcn(hobject, eventdata, handles, varargin)% this function has no output args, see outputfcn.% hobject handle to figure% eventdata reserved - to be defined in a fut

19、ure version of matlab% handles structure with handles and user data (see guidata)% varargin command line arguments to keshe (see varargin)% choose default command line output for keshehandles.output = hobject;% update handles structureguidata(hobject, handles);% uiwait makes keshe wait for user resp

20、onse (see uiresume)% uiwait(handles.figure1);% - outputs from this function are returned to the command line.function varargout = keshe_outputfcn(hobject, eventdata, handles) % varargout cell array for returning output args (see varargout);% hobject handle to figure% eventdata reserved - to be defin

21、ed in a future version of matlab% handles structure with handles and user data (see guidata)% get default command line output from handles structurevarargout1 = handles.output;% -function open_file_callback(hobject, eventdata, handles)% hobject handle to open_file (see gcbo)% eventdata reserved - to

22、 be defined in a future version of matlab% handles structure with handles and user data (see guidata)filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,載入圖像);if isequal(filename,0)|isequal(pathname,0) errordlg(沒有選中文件,出錯); return;else file=pathname,filename; global s %設(shè)置一個全局變量 s,保存初始圖像路徑,以便之后的還原操作 s=f

23、ile; 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% -function save_file_callback(hobject, eventdata, handles)% hobject handle to save_file (s

24、ee 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;*.*,保存圖像文件,untitled.jpg); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img

25、,sfilefullname); else msgbox(你按了取消鍵,保存失敗); end % -function close_file_callback(hobject, eventdata, handles)% hobject handle to close_file (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)clc;close all;close(gcf);c

26、lear;% - executes on button press in fenggu.function fenggu_callback(hobject, eventdata, handles)% hobject handle to fenggu (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)%clc; clear all; close all;%i = imread(l

27、ena.jpg);global iaxes(handles.axes2);i=getimage;if ndims(i) = 3i = rgb2gray(i);endfxy = imhist(i, 256); %統(tǒng)計每個灰度值的個數(shù)%figure;%subplot(2, 2, 1); %imshow(i, ); %title(原圖)%subplot(2, 2, 2); plot(fxy); %畫出灰度直方圖%title(直方圖)p1 = input num:;p2 = 180;p3 = inputdlg(p1,input num:1256,1,p2);p = str2num(p31); p =

28、p/255;bw = im2bw(i, p); %小于閾值的為黑,大于閾值的為白%subplot(2, 2, 3); imshow(bw); title(雙峰閾值分割)handles.img=bw;guidata(hobject,handles);% -function m_file1_r_callback(hobject, eventdata, handles)% hobject handle to m_file1_r (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles s

29、tructure with handles and user data (see guidata)%a = imread(c:usersadministratordesktop新建文件夾lena.jpg); % 讀入圖像% - executes on button press in quyu.function quyu_callback(hobject, eventdata, handles)% hobject handle to quyu (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata)global a0a0=getimage;axes(handles.axes2);%a0=imread(lena.jpg);%讀入圖像seed=100,220;%選擇起始位置thresh=15;%相似性選擇閾值a=rgb2gray(a0);%灰度化a=imadjust(a,min(min(double(a)/255,max(max(double(a)/255

溫馨提示

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

評論

0/150

提交評論