二維最大熵閾值分割原理與opencv實現

2021-06-21 08:17:21 字數 2544 閱讀 2814

近期在做影象處理灰階分割的研究,發現網上有很多將一維最大熵閾值分割的文章與程式**,但是二維最大熵的資源相對較小。故本部落格的目的就在於此,在學習的過程中記錄相關筆記,以便幫助後面的研究者少走些彎路。希望與大家一起進步,共同提高。

閾值化是影象分割中一種重要的技術。現有大多數方法都通過影象的一維灰度直方圖選擇閾值。但是, 當影象的訊雜比遞減時, 採用這些方法將產生很多的分割錯誤。近年來, 出現了一些方法開始利用影象的二 維 灰 度 直 方 圖———像 素 的 灰 度 值分布及其鄰域的平均灰度值分布所構成的直方圖 來 進 行 閾 值分割。這些方法由於利用了影象的灰度資訊和鄰域的空間相關資訊, 其效果較傳統方法有明顯改善。

通常, 影象可看作乙個二維灰度函式, 其中包含 n×n 個象素點, g=為灰度取值範圍, 這裡 l=256。定義位於

座標( x, y) 象素的灰度值為 f( x, y) 。設 t∈g 為一分割閾值, 則對 圖 像 函 數 f( x, y) 以 灰 度 值 t 閾 值 化 的 結 果 即 為 二 值 函 數ft( x, y) :

ft( x, y) =

b0 f( x, y) ≤t

b1 f( x, y) > # t

( 1)

其中: 0≤b0, t, b1≤l- 1。二維閾值化方法同時考慮象素的灰度值 及 其 鄰 域 平 均 灰度值。象素( x, y) 處的 n×n 鄰域平均灰度值為:

其中: n≤n, n 一般取奇數, [n2]表示取整, 本文取 n=3。通過對原圖進行鄰域平均得到另一「平滑影象」, 由原影象和平滑影象構造出乙個二維直方圖。因為影象畫素與其鄰域畫素的相關性是相當大的, 所以物體和背景的分布在二維直方圖中就會比在一維直方圖中更容易區分。一般地, 二維直方圖呈雙峰或多峰特性。如以灰度、鄰域平均灰度值對[f( x, y) , g( x, y) ]來表示影象,並以二維向量( s, t) 來分割影象, 這裡, 0≤s, t≤l- 1。則二維閾值化函式可定義為:

則就是影象的二維灰度直方圖, 如圖所示。其起始點在左上方, 灰度值從左至右增加, 鄰域平均灰度值自上 而 下

增加。二維直方圖上共有 l2個點, 每一點的函式值即為 rij。若影象的分割閾值向量為( s, t) , 則直方圖被分成 4 塊, 根據同態

性, 在目標和背景處, 象素的灰度值和鄰域平均灰度值接近, 在目標和背景的分界鄰域, 象素的灰度值與鄰域平均灰度值差異較大。因此目標和背景中的象素將出現在對角線周圍, 故方塊0 和 1 包含了目標類和背景類的分布; 遠離對角線的方塊 2 和3, 對應邊緣和雜訊。

基本思想:利用點灰度和區域灰度均值的二維直方圖,根據熵最大原則尋找最佳閾值。

做法:首先以原始灰度影象(l個灰度級)中各象素及其4鄰域組為乙個區域,計算出區域灰度均值影象(l個灰度級),這樣原始影象中的每個象素都對應乙個點灰度

-區域灰度均值對,這樣的資料對存在l×l種可能的取值。

ni,j為影象中點灰度為i及其區域灰度均值為j的象素點數,pi,j為點灰度-區域灰度均值對(i,j)發生的概率,則

則就是該影象關於點灰度

-區域灰度均值的二維直方圖。

結論: 1.在強雜訊干擾下,

一維直方圖是單峰的,

二維直方圖利用了影象鄰域的相關資訊,

目標和背景的雙峰仍然明顯;

2. 點灰度-區域灰度均值的概率高峰主要出現在xoy平面的對角線附近,並且在總體上呈現雙峰和一穀的狀態;

這是由於影象的所有象素中,目標點和背景點所佔比例最大,而目標區域和背景區域內部象素灰度級比較均勻,點灰度及其區域灰度均值相差不大,所以都集中在對角線附近,兩個峰分別對應於目標和背景;遠離xoy平面對角線的座標處,峰的高度急劇下降,這部分所反映的是影象中的雜訊點、邊緣點和雜散點。

3. 應該在a區和b區上用點灰度-區域灰度均值二維最大熵法確定最佳閾值,使真正代表目標和背景的資訊量最大。

這是由於影象的所有象素中,目標點和背景點所佔比例最大,而目標區域和背景區域內部象素灰度級比較均勻,點灰度及其區域灰度均值相差不大,所以都集中在對角線附近,兩個峰分別對應於目標和背景;遠離xoy平面對角線的座標處,峰的高度急劇下降,這部分所反映的是影象中的雜訊點、邊緣點和雜散點。

閾值分割 最大熵分割法

最大熵分割法 現在主要用的熵演算法有 p 氏熵演算法,ksw 熵演算法 jm 熵演算法下面以經典的 ksw 熵演算法為例介紹其原理和計算過程。ksw熵演算法 設分割閾值為設分割閾值為t,t為的灰度分布,b為的灰度分布,則概率分布為 定義函式 t 為h t 和h b 的和,則 求出 t 最大時的灰度級...

最大熵學習筆記(二)最大熵原理

生活中我們經常聽到人們說 不要把雞蛋放到乙個籃子裡 這樣可以降低風險。深究一下,這是為什麼呢?其實,這裡邊包含了所謂的最大熵原理 the maximum entropy principle 本文為一則讀書筆記,將對最大熵原理以及由此匯出的最大熵模型進行介紹,重點給出其中所涉及數學公式的理解和詳細推導...

棋盤分割(二維區間DP)

題目大意 給乙個棋盤,棋盤上每個格仔中都有乙個值,現在需要將棋盤切成n個矩形,總共切n 1刀,求最小的均方差。均方差定義為 其中。題目分析 將均方差化簡得到 均方差2 xi 2 n 平均值2。顯然,平均值2是定值,為數字總和除以n。只需讓矩形的和的平方和最小即可。先預處理出陣列s x1,y1,x2,...