圖像閾值分割技術原理和比較講解_第1頁
圖像閾值分割技術原理和比較講解_第2頁
圖像閾值分割技術原理和比較講解_第3頁
圖像閾值分割技術原理和比較講解_第4頁
圖像閾值分割技術原理和比較講解_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

圖像閾值分割和邊緣檢測技術原理和比較半平刊笈大事圖像分割是一種重要的圖像分析技術。對圖像分割的研究一直是圖像技術研究中的熱點和焦點。醫(yī)學圖像分割是圖像分割的一個重要應用領域,也是一個經典難題,至今已有上千種分割方法,既有經典的方法也有結合新興理論的方法。醫(yī)學圖像分割是醫(yī)學圖像處理中的一個經典難題。圖像分割能夠自動或半自動描繪出醫(yī)學圖像中的解剖結構和其它感興趣的區(qū)域,從而有助于醫(yī)學診斷。閾值分割是一種利用圖像中要提取的目標物與其背景在灰度特性上的差異,把圖像視為具有不同灰度級的兩類區(qū)域(目標和背景)的組合,選取一個合適的閾值,以確定圖像中每個像素點應該屬于目標區(qū)域還是背景區(qū)域,從而產生對應的二值圖像。本文先介紹各種常見圖像閾值分割和邊緣檢測方法的原理和算法,然后通過MATLAB程序實現,最后通過比較各種分割算法的結果并得出結論。關鍵詞:圖像分割;閾值選擇;邊緣檢測;目錄TOC\o"1-5"\h\z\o"CurrentDocument".概述 4\o"CurrentDocument".圖像閾值分割和邊緣檢測原理 4\o"CurrentDocument"閾值分割原理 4\o"CurrentDocument"手動(全局)閾值分割 5\o"CurrentDocument".迭代算法閾值分割 6\o"CurrentDocument"大津算法閾值分割 6\o"CurrentDocument"邊緣檢測原理 6\o"CurrentDocument"roberts算子邊緣檢測 7\o"CurrentDocument"prewitt算子邊緣檢測 7\o"CurrentDocument"sobel算子邊緣檢測 7\o"CurrentDocument"高斯laplacian算子邊緣檢測 8\o"CurrentDocument"canny算子邊緣檢測 8\o"CurrentDocument".設計方案 9\o"CurrentDocument".實驗過程 10\o"CurrentDocument"閾值分割 12\o"CurrentDocument"手動(全局)閾值分割 12\o"CurrentDocument"迭代算法閾值分割 12\o"CurrentDocument"大津算法閾值分割 12\o"CurrentDocument"邊緣檢測 13\o"CurrentDocument"roberts算子邊緣檢測 13\o"CurrentDocument"prewitt算子邊緣檢測 13\o"CurrentDocument"sobel算子邊緣檢測 13\o"CurrentDocument"高斯laplacian算子邊緣檢測 13\o"CurrentDocument"canny算子邊緣檢測 14\o"CurrentDocument".試驗結果及分析 14\o"CurrentDocument"實驗結果 14\o"CurrentDocument"手動(全局)閾值分割 14\o"CurrentDocument"迭代算法閾值分割 17\o"CurrentDocument"大津算法閾值分割 18\o"CurrentDocument"roberts算子邊緣檢測 19\o"CurrentDocument"prewitt算子邊緣檢測 20sobel算子邊緣檢測 21\o"CurrentDocument"高斯laplacian算子邊緣檢測 22\o"CurrentDocument"canny算子邊緣檢測 23\o"CurrentDocument"實驗結果分析和總結 24\o"CurrentDocument"參考文獻 24.概述圖像分割是指根據灰度、彩色、空間紋理、幾何形狀等特征把圖像劃分成若干個互不相交的區(qū)域,使得這些特征在同一區(qū)域內,表現出一致性或相似性,而在不同區(qū)域間表現出明顯的不同[37].簡單的講,就是在一幅圖像中,把目標從背景中分離出來,以便于進一步處理。圖像分割是圖像處理與計算機視覺領域低層次視覺中最為基礎和重要的領域之一,它是對圖像進行視覺分析和模式識別的基本前提.同時它也是一個經典難題,到目前為止既不存在一種通用的圖像分割方法,也不存在一種判斷是否分割成功的客觀標準。閾值法是一種傳統的圖像分割方法,因其實現簡單、計算量小、性能較穩(wěn)定而成為圖像分割中最基本和應用最廣泛的分割技術.已被應用于很多的領域,例如,在紅外技術應用中,紅外無損檢測中紅外熱圖像的分割,紅外成像踉蹤系統中目標的分割;在遙感應用中,合成孔徑雷達圖像中目標的分割等;在醫(yī)學應用中,血液細胞圖像的分割,磁共振圖像的分割;在農業(yè)工程應用中,水果品質無損檢測過程中水果圖像與背景的分割。在工業(yè)生產中,機器視覺運用于產品質量檢測等等。在這些應用中,分割是對圖像進一步分析、識別的前提,分割的準確性將直接影響后續(xù)任務的有效性,其中閾值的選取是圖像閾值分割方法中的關鍵技術。圖像分析和理解的第一步常常是邊緣檢測。邊緣檢測方法是人們研究得比較多的一種方法,它通過檢測圖像中不同區(qū)域的邊緣來達到分割圖像的目的。邊緣檢測的實質是采用某種算法來提取出圖像中對象與背景問的交界線。我們將邊緣定義為圖像中灰度發(fā)生急劇變化的區(qū)域邊界。圖像灰度的變化情況可以用圖像灰度分布的梯度來反映,因此我們可以用局部圖像微分技術來獲得邊緣檢測算子。經典的邊緣檢測方法,是通過對原始圖像中像素的某小鄰域構造邊緣檢測算子來達到檢測邊緣這一目的。.圖像閾值分割和邊緣檢測原理閾值分割原理對灰度圖像的取閾值分割就是先確定一個處于圖像灰度取值范圍之中的灰度閾值,然后將圖像中各個像素的灰度值都與這個閾值相比較,并根據比較結果將對應的像素分為兩類。這兩類像素一般分屬圖像的兩類區(qū)域,從而達到分割的目的。閾值分割算法主要有兩個步驟:(1)確定需要的閾值;(2)將分割閾值與像素值比較以劃分像素。

可以看出,確定一個最優(yōu)閾值是分割的關鍵。現有的大部分算法都是集中在閾值確定的研究上。閾值分割方法根據圖像本身的特點,可分為單閾值分割方法和多閾值分割方法:也可分為基于像素值的閾值分割方法、基于區(qū)域性質的閾值分割方法和基于坐標位置的閾值分割方法.若考慮分割算法所用的特征或準則的特點,還可以分為直方圖與直方圖變換法、最大類空間方差法、最小誤差法與均勻化誤差法、共生矩陣法、最大熵法、簡單統計法與局部特性法、概率松弛法、模糊集法等。在這里我們只介紹手動閾值分割(又稱雙峰閾值分割或者全局閾值分割),迭代算法閾值分割,大津法(OTSU法)閾值分割。,手動(全局)閾值分割手動閾值分割算法,由于工作原理是用一個手動設定的灰度閾值對整個圖像做分割,進而產生二值圖像,所以又稱全局分割算飯,同時這種分割算法對于圖像灰度直方圖呈雙峰分布時比較有效,故又稱雙峰分割算法。若圖像中目標和背景具有不同的灰度集合:目標灰度集合與背景灰度集合,且兩個灰度集合可用一個灰度級閾值T進行分割。這樣就可以用閾值分割灰度級的方法在圖像中分割出目標區(qū)域與背景區(qū)域,這種方法稱為灰度閾值分割方法。在物體與背景有較強的對比度的圖像中,此種方法應用特別有效。比如說物體內部灰度分布均勻一致,背景在另一個灰度級上也分布均勻,這時利用閾值可以將目標與背景分割得很好。如果目標和背景的差別是某些其他特征而不是灰度特征時,那么先將這些特征差別轉化為灰度差別,然后再應用閾值分割方法進行處理,這樣使用閾值分割技術也可能是有效的設圖像為f(x,y),其灰度集范圍是[0,L],在0和L之間選擇一個合適的灰度閾值T,則圖像分割方法可由式(2.1)描述iff(x,y)>T

ififf(x,y)>T

iff(x,y)<T(2.1)這樣得到的g(x,y)是一幅二值圖像。這時T的大小將直接影響分割的效果。由于這種分割算法適用范圍有限,而且要手動設定灰度閾值,過程復雜而且有時灰度閾值不易尋找,進而出現了自動閾值分割,主要是迭代算法和大津算法(OTSU)閾值分割。.迭代算法閾值分割迭代算法是對雙峰法的改進,它首先選擇一個近似閾值T,將圖像分割成兩個部分G1和G2,然后計算G1和G2像素的平均灰度值ml和m2,選擇新的分割閾值T=T=(ml+m2)/2;重復以上步驟,知道T不變?yōu)橹?。迭代法適合圖像直方圖有明顯波谷。迭代算法是基于逼近的思想,其主要步驟如下:1.為全局閾值選擇一個初始估計值T(圖像的平均灰度)。.用T分割圖像。產生兩組像素:G1有灰度值大于T的像素組成,G2有小于等于T像素組成。.計算G1和G2像素的平均灰度值m1和m2;.計算一個新的閾值:T=(m1+m2)/2;.重復步驟2和4,直到連續(xù)迭代中的T值間的差小于一個預定義參數為止。然后再用閾值分割對圖像進行分割得到二值灰度圖像。2.1.3.大津算法閾值分割大津法(OTSU)是一種確定圖像二值化分割閾值的算法,由日本學者大津于1979年提出。從大津法的原理上來講,該方法又稱作最大類間方差法,因為按照大津法求得的閾值進行圖像二值化分割后,前景與背景圖像的類間方差最大。對于圖像f(x,y),前景(即目標)和背景的分割閾值記作T,屬于前景的像素點數占整幅圖像的比例記為30,其平均灰度叩;背景像素點數占整幅圖像的比例為31,其平均灰度為gio圖像的總平均灰度記為g,類間方差記為go假設圖像的背景較暗,并且圖像的大小為MxN,圖像中像素的灰度值小于閾值T的像素個數記作N0,像素灰度大于閾值T的像素個數記作N1,則有:30=N0/MxN(1)31=N1/MxN(2)N0+N1=MxN(3)30+31=1 (4)g=30*g0+31*g1(5)g=30(g0-g)A2+31(g1-g)A2(6)將式(5)代入式(6),得到等價公式:g=3031(g0-g1)A2 (7)這就是類間方差采用遍歷的方法得到使類間方差g最大的閾值T,即為所求。然后再用所得到的T進行全局閾值分割得到二值圖像。2.2.邊緣檢測原理圖像分析和理解的第一步常常是邊緣檢測。邊緣檢測方法是人們研究得比較多的一種方法,它通過檢測圖像中不同區(qū)域的邊緣來達到分割圖像的目的。邊緣檢測的實質是采用某種算法來提取出圖像中對象與背景問的交界線。我們將邊緣定義為圖像中灰度發(fā)生急劇變化的區(qū)域邊界。圖像灰度的變化情況可以用圖像灰度分布的梯度來反映,因此我們可以用局部圖像微分技術來獲得邊緣檢測算子。經典的邊緣檢測方法,是通過對原始圖像中像素的某小鄰域構造邊緣檢測算子來達到檢測邊緣這一目的。roberts算子邊緣檢測V/= 7 匕1 、 勺函數的梯度定義為 一 「V通常把梯度的模叫做圖象的梯度。對于數字圖象,可以用差分來近似微分roberts算子模板的形式就是RjollELT交叉算?子模版5510010-1-10則模板運算結果.仔)=1*了(羽;^十口*了(大十1p)十+D+LD+/(A.十l,r+1)=八2)一十1,7十。%—O聲/o,1y)十]* 十十十1);十G比/5十1,才十1)二>口十1。)一丁口,下十1)仃電河=6|十弓二|丁壇網「力>十1二尸十叨十^^十1,電一/50十1)如巢go傷大于某一閾值,則我們認為(X*1點為邊綾點.prewitt算子邊緣檢測。Prewitt算子由兩部分組成,檢測水平邊緣的模板.111-和I】口?檢測垂直邊緣的模板。對數字圖像f(x,y),Prewitt算子的定義如下:水平方向Gx=[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]垂直方向Gy=[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]G(i,j)=IGxl+IGyl。經典Prewitt算子認為:凡灰度新值大于或等于閾值的像素點都是邊緣點。即選擇適當的閾值T,若G(i,j)>則G(i,j)為邊緣點。這種判定是欠合理的,會造成邊緣點的誤判,因為許多噪聲點的灰度值也很大,而且對于幅值較小的邊緣點,其邊緣反而丟失了。sobel算子邊緣檢測】」,另一個是檢測水平邊緣的Sobel算子也有兩個,一個是檢測水平邊緣的模板I】」,另一個是檢測水平邊緣的-0-2O2模板「1口。sobel算子的另一種形式是各向同性Sobel算子,也有兩個模板組成,-1一、萬-1-1一、萬-1(] (] 0一個是檢測水平邊緣的「事-Vyo-/z另一個是檢測垂直邊緣的L-1oL。各向同性Sobel算子和普通Sobel算子相比,位置加權系數更為準確,在檢測不同方向的邊緣時梯度的幅度一致。本文中我們使用原始的sobel算子。"(J(工+1.中一一(a—LM)/2總+ 2將(/(7+1P^+1)-/(Z-1,^+1))y2ok*y"卜"1)一?。?-11)/”(川]一”+1:-/(丫一1?-1)二作(/卜4心+1)-/(工41》—1》2忸(“)=/可十?。航M十里燈:4日十4日=;(2(小十3一,"一1”I(外一Ly-I1)f(--》-1力十(小十”11:-/(.YI1,>-1|)'|€ 4M7 1 _:(一2d,尸+1)一/("-1))一(/(八十1,/一】)一/〔八一1產一二):一(/|,十1,F十1)一/卜一1,r十1力)-X ,--4L2?2.4.高斯laplacian算子邊緣檢測Laplacian算子定義為,.?... . F(、方、/) 停二/?,好)w》(工*了)=-一■———?■—■—■■—缶■ (?/它的差分形式為v“了區(qū)$>= ?口-/(不歷-[/圖戶—--lM+11一(無.+1)一?(冗.)]一[/(f)-f5「一Dli=人工十1/)十八工「L『)+J您,+1)-+f&^y-L”4』孕+1中■0一1O--1 4 -1laplacian表示成模板的形式就是1口-1口」。Laplace算子是一種各向同性算子,在只關心邊緣的位置而不考慮其周圍的象素灰度差值時比較合適。Laplace算子對孤立象素的響應要比對邊緣或線的響應要更強烈,因此只適用于無噪聲圖象。存在噪聲情況下,使用Laplacian算子檢測邊緣之前需要先進行低通濾波。在本文中我們先進性高斯平滑處理再使用laplacian算子進行邊緣檢測。2.2.5.canny算子邊緣檢測Canny邊緣檢測基本原理(1)圖象邊緣檢測必須滿足兩個條件:一能有效地抑制噪聲;二必須盡量精確確定邊緣

的位置。(2)根據對信噪比與定位乘積進行測度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測算子。(3)類似與Marr(LoG)邊緣檢測方法,也屬于先平滑后求導數的方法。Canny邊緣檢測算法:stepl:用高斯濾波器平滑圖象;step2:用一階偏導的有限差分來計算梯度的幅值和方向;step3:對梯度幅值進行非極大值抑制;step4:用雙閾值算法檢測和連接邊緣。.設計方案這里通過MATLAB工具編寫程序實現上述分割算法并給出處理后的結果,為了方便操作,形象的表示各分割算法的效果,通過一個MATLAB圖形界面GUI窗口來進行操作,在圖形窗口中有‘打開圖像’按鈕,一輸入和顯示閾值的文本輸入框,一個選擇分割算法的下拉菜單,以及一個顯示原圖像和一個顯示處理后圖像的坐標軸。先點擊‘打開圖像’并選擇電腦中的一幅圖像,然后通過下拉菜單選擇圖像分割算法,在這里有兩種情況,如果是選擇‘手動閾值分割’,那么需要手動在文本編輯框中輸入設定的閾值,而如果是選擇其他的分割算法,由于這些算法都不需要手動輸入閾值,而是通過程序自動選擇閾值,所以這里文本編輯框中會顯示程序自動選擇的閾值。點擊下拉菜單中的條目選擇不同的分割算法進行分割,分割后的圖像會顯示在右側的坐標軸中。示例如下:分割后原、四傍一大津閾值分割閾伯142.實驗過程程序共有四個m文件構成,分別是主函數文件 Imgprocess.m和四個函數文件fuzhi.m,td.m,dd.m和dajin.m。在介紹各種圖像分割算法之前,先介紹程序中的幾個函數,如下:.利用閾值t0對圖像cell進行二值化的函數fuzhi(cell,t0),代碼如下:functionncell=fuzhi(cell,t0);[a,b]=size(cell); %獲取文件的尺寸fori=1:a%通過循環(huán)分別對圖像灰度與閾值t0進行比較判,如果大于t0則灰度置為%255,否則置為0;forj=1:bifcell(i,j)>t0ncell(i,j)=255;elsencell(i,j)=0;endendend.利用已經求得的水平方向梯度xa和垂直方向梯度ya來求它們的均方值的td(xa,ya),代碼如下:functionna=td(xa,ya)[a,b]=size(xa);fori=1:aforj=1:bna(i,j)=sqrt((xa(i,j)*xa(i,j))+(ya(i,j)*ya(i,j)));%求xa和ya的均方值并返回給naendend.對圖像cell通過迭代法求閾值的函數dd(cell),代碼如下:functiont0=dd(cell)[a,b]=size(cell);zmax=max(max(cell));zmin=min(min(cell));t0=(zmax+zmin)/2;flag=1;while(flag)functiont0=dd(cell)[a,b]=size(cell);zmax=max(max(cell));zmin=min(min(cell));t0=(zmax+zmin)/2;flag=1;while(flag)置為0,從而結束循環(huán)nbf=0;nbk=0;nibf=0;nibk=0;fori=1:a背景灰度總和。forj=1:b%求圖像的最大灰度值%求圖像的最小灰度值%將t0的初始值置為(zmax+zmin)/2%flag是循環(huán)標志,初始值為1,只有當找到要得到的t0才%%前景數%背景數%前景和背景灰度總和%通過循環(huán)遍歷來計算前景數,背景數,前景灰度總和和%ifcell(i,j)>t0nbf=nbf+1;nibf=nibf+double(cell(i,j));elsenbk=nbk+1;nibk=nibk+double(cell(i,j));endendendzo=nibf/nbf; %得到前景背景的平均灰度值zb=nibk/nbk;t0tmp=(zo+zb)/2; %判斷t0是否變化,如果不變化則這時的t0就是所求閾值ift0tmp==t0flag=0;elset0=t0tmp;endend.對圖像cell通過大津法求閾值的函數dajin(cell),代碼如下:functiont0=dajin(cell)[a,b]=size(cell);ni=zeros(1,256);fori=0:255 %通過循環(huán)統計從0到255各個灰度的像素個數forj=1:afork=1:bifcell(j,k)==ini(i+1)=ni(i+1)+1;endendendendN=0;forn=0:255N=N+ni(n+1); %計算總的像素個數endpi=zeros(1,255);pi=ni/N; %計算各灰度值出現的概率%計算%計算u;fori=0:255u=u+i*pi(i+1);endsgmat=zeros(1,256); %計算類間方差sgma(T)forT=0:255wt=0;ut=0;fori=0:Twt=wt+pi(i+1);ut=ut+i*pi(i+1);endsgmat(T+1)=(u*wt-ut)A2/(wt*(1-wt));endsgmamax=max(sgmat); %求出最大的類間誤差fori=0:255 %求出這時的閾值t0ifsgmamax==sgmat(i+1)t0=i;break;endend閾值分割.手動(全局)閾值分割t0=b;%b是從文本編輯框中讀取的閾值pic2=fuzhi(pic,b);%進行二值化運算.迭代算法閾值分割t0=dd(pic);%通過迭代算法求得閾值pic2=fuzhi(pic,t0);.大津算法閾值分割t0=dajin(pic);%通過大津算法求得閾值pic2=fuzhi(pic,t0);邊緣檢測roberts算子邊緣檢測t0=dajin(pic);%先通過大津算法求出閾值xr=[10;0-1]水平方向算子yr=xr'; 垂直方向算子xpic=3*filter2(xr,pic,'same');對%圖像求水平方向梯度ypic=3*filter2(yr,pic,'same');對%圖像求垂直方向梯度pic2=td(xpic,ypic);^%梯度pic2=fuzhi(pic2,t0);prewitt算子邊緣檢測pic=double(pic);t0=dd(pic);xp=[-1-1-1;000;111];水平方向算子yp=xp';xa=filter2(xp,pic,'same');ya=filter2(yp,pic,'same');na=td(xa,ya);pic2=fuzhi(na,t0);sobel算子邊緣檢測t0=dajin(pic);xsobel=[-1-2-1;000;121];水平方向算子ysobel=xsobel';xpic=filter2(xsobel,pic,'same');ypic=filter2(ysobel,pic,'same');npic=td(xpic,ypic);pic2=fuzhi(npic,t0);.高斯laplacian算子邊緣檢測gauss=[14741;TOC\o"1-5"\h\z416 26 16 4;726 41 26 7;416 26 16 4;1474 1]/273;高斯算子t0=dd(pic);

npic=filter2(gauss,pic,'same')先對圖像用高斯算子進行平滑lap=[010;1-41;010]; %laplaci算子npic=filter2(lap,npic,'same');npic=abs(15*npic);pic2=fuzhi(npic,t0);canny算子邊緣檢測[pic2,th]=edge(pic,'canny');%canny實現起來太過復雜,我們直接調用%MATLAB自帶的canny算子進行邊緣檢測t0=th(1);.試驗結果及分析實驗結果這里列出了分別對兩幅圖像進行上述分割方法處理的結果。.手動(全局)閾值分割閾值選擇過小的情況£=iEtrdjjanSIttBS原匕,& Ml; 因看閾值選擇合適的情況:;:U5 什智「 悶I二In行百M閾值選擇過大的情況原任世方割后閾值手動閾管r割原明嚏.分劇,后閩芍2K8手劫運晅;百5.1.2.迭代算法閾值分割flffas

溫馨提示

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

評論

0/150

提交評論