2014年10月2日 星期四

[Matlab]如何挑出圖像中隱藏的細節(2) 自適應閥值挑選之大津法則(OTSU method)


延續[Matlab]如何挑出圖像中隱藏的細節(1)? 自適應閥值挑選之迭代法(iteration method)文章,常用於自適應閥值挑選的方法除了迭代法之外,大津演算法也是其中之一。

兩種方法差異的摘要如下:

A.迭代法(Iteration method):

1.需選定一個初始閥值T0
2.需定義不同閥值間的差值,以作為挑選出最佳閥值的條件。
3.藉由不斷比較新閥值T(i+1)和舊閥值T(i),當新舊閥值的比較結果符合條件,即為最佳閥值。
4.收斂至最佳閥值的結果將會受到T0和條件選定而有所影響,尤其是無明顯雙峰之直方圖特性的圖像。關於初始閥值的挑選法則,仍有一些文章發表進階挑選法則,以取得較佳的收斂結果。

B.大津演算法(OTSU method):

1.不需選定一個初始閥值。
2.藉由掃描所有的閥值,並計算不同閥值所造成的類間方差異,差異最大值即是最佳閥值T
3.該演算法較接近自適應挑選的意義,但缺點是因掃描全域閥值再決定出最佳閥值,計算速度將會是另一個限制。

圖一是利用matlab實現大津演算法的程式碼,圖二為最佳閥值結果為198,圖像表現如本文封面圖所示

圖一

圖二

上述提到迭代法的結果將受到初始值和條件定義的影響,舉例來說,若將iteration methodT0設定為180,仍會收斂至T=197,與[Matlab]如何挑出圖像中隱藏的細節(1)? 自適應閥值挑選之迭代法(iteration method)的結果相同,但若T0設定為210,則會收斂至T=203,將會造成無法區分主體和背景的圖像,如圖三所示。

圖三

延伸閱讀:[Matlab]如何挑出圖像中隱藏的細節(1)? 自適應閥值挑選之迭代法(iteration method)

沒有留言:

張貼留言