一、圖像分割包括以下三種思路:
A)基于灰度級的不連續(xù)性來查找區(qū)域間的邊界棠耕;(Edge Detect)(霍夫變換和邊緣檢測)
B)基于像素屬性的分布的相似性(如亮度值)得閾值饶碘;(graythresh)
C)直接尋找區(qū)域的分割技術(shù);(Region Grow ,暫不討論)
對應(yīng)B又可以分為1.全局閾值法(Otsu逸贾、最大熵法)2.局部閾值法(Bernsen)3.動態(tài)閾值法师逸。
需要進一步說明的是全局閾值法采用同一個灰度值作為分割門限對整幅圖進行處理,特別對直方圖分布呈雙峰態(tài)的圖像分割效果好益缎。局部閾值法根據(jù)不同的待處理點及周圍一定區(qū)域范圍內(nèi)像素點的灰度特征計算出不同的局部分割閾值谜慌,適用于照明不均勻然想,噪聲干擾明顯或圖像灰度多級分布的情況莺奔。
二、全局閾值法以O(shè)tsu(小日本 大津展之 提出的)法較為常用变泄,其實是將統(tǒng)計學(xué)的概念運用到圖像處理中的一次成功的結(jié)合令哟。所以O(shè)tsu法的本質(zhì)是選擇最大化組間方差對應(yīng)的閾值。
下面是Otsu 推導(dǎo)過程:
實際處理過程中妨蛹,變換初始閾值t的值屏富,當(dāng)判別函數(shù)達到最大值時,對應(yīng)的t的數(shù)值就是我們要求的全局閾值蛙卤。
Matlab 中對應(yīng)的函數(shù)為graythresh;
三狠半、局部閾值法
針對于圖像照明不均勻的問題,可以采用先將圖像進行預(yù)處理后在做全局閾值處理颤难,也可以適用局部變化的閾值函數(shù)對圖像進行閾值處理神年。
對于前者有一個有趣的概念就是“頂帽變換”,所謂的頂帽變換就是指從原圖像中減去開運算后的圖像行嗤。
下面為Matlab對頂帽變換的過程截圖已日。
圖a,為原始圖像,圖像中可以明顯看出圖像底部亮度比上部的整體亮度低栅屏,從圖b的直方圖可以看出飘千,原始圖像屬于多級分布,若直接使用全局閾值法進行分割栈雳, Otsu法計算的閾值為131护奈,如圖c中底部的目標(biāo)被丟失,所以要對原始圖像進行頂帽變換哥纫,首先對原始圖像做開運算霉旗,開運算的結(jié)構(gòu)元素的大到可以剛好將目標(biāo)擦去即可如圖d,從圖d可以看出,正是我們想要的背景圖奖慌,用原始圖像減去開運算后的圖像得到圖e抛虫,圖e的亮度分布為雙峰態(tài)如圖f,適合做全局閾值處理简僧,所以使用全局閾值處理得到圖g.
(圖 a)
(圖 b)
(圖 c) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(圖 d)
(圖 e) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(圖 f)
(圖 g)
上述處理等同于使用局部變化函數(shù)的閾值函數(shù)T(x,y)對f(x,y)進行閾值處理:
g(x,y) =1 if f(x,y)>=T(x,y)
g(x,y) =0 if f(x,y)
其中T(x,y) =fo(x,y)+To;
fo(x,y)是f(x,y)的形態(tài)開運算建椰,常數(shù)To是對fo(x,y)應(yīng)用函數(shù)graythresh后的結(jié)果。