資源描述:
《基于-matlab的圖像閾值分割技術》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、基于MATLAB的圖像閾值分割技術摘要:本文主要針對圖像閾值分割做一個基于MATLAB的分析。通過雙峰法,迭代法以及OUTS法三種算法來實現(xiàn)圖像閾值分割,并且就這三種算法做了一定的分析和比較,在加椒鹽的圖片上同時進行三種實驗,做出比較,最終得出實踐結論。關鍵詞:圖像分割MATLAB閾值分割算法引言:圖像分割是圖像處理與計算機視覺領域低層次視覺中最為基礎和重要的領域之一,它是對圖像進行視覺分析和模式識別的基本前提.同時它也是一個經典難題,到目前為止既不存在一種通用的圖像分割方法,也不存在一種判斷是否分割成功的客觀標準,圖像閾值分割即是其中的一種方法。
2、閾值分割技術因其實現(xiàn)簡單、計算量小、性能較穩(wěn)定而成為圖像分割中最基本和應用最廣泛的分割技術,已被應用于很多的領域,在很多圖像處理系統(tǒng)中都是必不可少的一個環(huán)節(jié)。1、閾值分割思想和原理若圖像中目標和背景具有不同的灰度集合:目標灰度集合與背景灰度集合,且兩個灰度集合可用一個灰度級閾值T進行分割。這樣就可以用閾值分割灰度級的方法在圖像中分割出目標區(qū)域與背景區(qū)域,這種方法稱為灰度閾值分割方法。在物體與背景有較強的對比度的圖像中,此種方法應用特別有效。比如說物體內部灰度分布均勻一致,背景在另一個灰度級上也分布均勻,這時利用閾值可以將目標與背景分割得很好。如果目
3、標和背景的差別是某些其他特征而不是灰度特征時,那么先將這些特征差別轉化為灰度差別,然后再應用閾值分割方法進行處理,這樣使用閾值分割技術也可能是有效的設圖像為f(x,y),其灰度集范圍是[0,L],在0和L之間選擇一個合適的灰度閾值T,則圖像分割方法可由下式描述:這樣得到的g(x,y)是一幅二值圖像。(一)原理研究圖像閾值分割的方法有很多,在這里就其中三種方法進行研究,雙峰法,迭代法,以及OUTS法。方法一:雙峰法方法原理:雙峰法是一種簡單的閾值分割方法。雙峰法先將原圖轉為灰度圖,然后將灰度圖轉為灰度直方圖,灰度直方圖就是灰度級的像素數(shù)ni與灰度i的
4、二維關系,它反映了一幅圖像上灰度分布的統(tǒng)計特性,在MATLAB中使用函數(shù)imhist來實現(xiàn)。如果得到的灰度直方圖呈現(xiàn)明顯的雙峰狀,則選取雙峰之間的谷底所對應的灰度級作為閾值分割。方法二:迭代法方法原理:開始時候選擇一個閾值作為初始估計值,然后按著某種策略不斷得改進這個估計值,直到滿足給定的準則為止。(1)求出圖像最大灰度值Max和最小灰度值Min,初始閾值估計值T0.=(Max+Min)*0.5.(2)用T0將圖像分割為目標和前景。圖像分成兩組像素:Z1由所有灰度值大于或等于T0的像素組成,而Z0由所有灰度值小于T0的像素組成。(3)分別求出兩者區(qū)
5、域中的所有像素計算平均灰度值a1和a2。(4)計算新的閾值T1=(a1+a2)*0.5.如果
6、Ti+1-Ti
7、<0.5,則退出循環(huán),Ti+1即為所求閾值;否則,將Ti+1復制給Ti,重復(2)~(5)。方法三:OTSU法方法原理OTUS又稱:最大類間法,該算法是在使類間方差最大的自動確定閾值的方法,是在判決分析最小二乘法原理的基礎上推到得出的,其算法比較簡單,是一種方便可行的閾值選取方法。設原始灰度圖像灰度級范圍為[0,L],灰度級為i的像素點數(shù)為ni,則圖像的全部像素數(shù)為:把圖像中的像素按灰度值用閾值t分成兩類C0和C1,由灰度值在[0,t]之間
8、的像素組成,由灰度值在[t+1,L-1]之間的像素組成,對于灰度分布概率,整幅圖的均值為ut因此,C0和C1的均值為:其中上面三式可得ut=w0u0+w1u1類間方差定義為:讓t在[0,L-1]范圍一次取值,使類間方差最大的他值即為OUTS法的最佳閾值。MATLAB工具箱提供的graythresh函數(shù)求取閾值。算法:1、雙峰法圖像閾值分割matlabcode:I=imread('cat.jpeg');I=rgb2gray(I);imhist(I)直方圖:說明:根據(jù)雙峰法原理,觀察到灰度圖像直方圖呈現(xiàn)明顯的雙峰狀,則選取雙峰之間的谷底所對應的灰度級作
9、為閾值分割。如上圖,選取230作為分割點。I=imread('cat.jpeg');I=rgb2gray(I);figuresubplot(1,2,1)imshow(I);[width,height]=size(I);title('原圖')fori=1:widthforj=1:heightif(I(i,j)<230)RC(i,j)=0;elseRC(i,j)=1;endendendsubplot(1,2,2)imshow(RC)title('雙峰法圖像閾值分割處理效果圖')此圖為C=230此圖為C=150此圖為C=30由此可得,閾值的選取在雙峰法里
10、十分的重要。2、迭代法實行閾值分割的matlabcode:I=imread('cat.jpeg');I=rgb2gray(