im2bw

im2bw

matlab中DIP工具箱函式im2bw使用閾值(threshold)變換法把灰度圖像(grayscale image)轉換成二值圖像。一般意義上是指只有純黑(0)、純白(255)兩種顏色的圖像。 當然, 也可以是其他任意兩種顏色的組合。

簡介

matlab中DIP工具箱函式im2bw使用閾值(threshold)變換法把灰度圖像(grayscale image)轉換成二值圖像。所謂二值圖像, 一般意義上是指只有純黑(0)、純白(255)兩種顏色的圖像。 當然, 也可以是其他任意兩種顏色的組合。 在matlab命令行中鍵入doc im2bw或help im2bw即可獲得該函式的幫助信息。

閾值變換

比如數組 a = [120, 254, 0, 200, 99];

設定一個閾值125, 並對a進行閾值變換, 那么a中凡是大於125的, 則變為255, 小於等於125的則變為0

(具體對臨界情況處理可能不同, 不過matlab中im2bw函式是按照上述方法處理的)

這樣a經過閾值變換後變為[0, 255, 0, 255, 0]

語法

BW = im2bw(I, level)

BW = im2bw(X, map, level)

BW = im2bw(RGB, level)

其中level就是設定閾值的。level取值範圍[0, 1]。

例如:

>> I = uint8([0, 255, 128, 127, 121, 202]);

>> range = getrangefromclass(I)

range =

0 255

>> I2 = im2bw(I, 0.5)

I2 = 0 1 1 0 0 1

>> I3 = im2uint8(I2)

I3 = 0 255 255 0 0 255

getrangefromclass函式能夠根據圖像數據類型(I的數據類型是uint8)獲得圖像數據的取值範圍。通過這個例子, 可以看到, 圖像I中每個像素的取值範圍是0~255, 設定閾值為0.5, 則圖像數據中凡是超過255 * 0.5 = 127.5的都變為255, 否則都變為0。

注意事項

在Matlab中使用im2bw函式進行圖像二值化處理時(將圖像轉換為 二值圖像), 人為設定閾值並不總是十分有效。matlab工具箱為我們提供了graythresh函式。該函式使用最大類間方差法得到一個閾值, 利用這個閾值進行圖像二值化通常是十分有效的。

相關詞條

熱門詞條

聯絡我們