圖像處理函數詳解——im2bw


 

 

  im2bw是基於轉換為二值圖像的算法,用的是otsu's method.

  matlab中DIP工具箱函數im2bw使用閾值(threshold)變換法把灰度圖像(grayscale image)轉換成二值圖像。所謂二值圖像, 一般意義上是指只有純黑(0)、純白(255)兩種顏色的圖像。 當然, 也可以是其他任意兩種顏色的組合。 在matlab命令行中鍵入doc im2b或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)

  將灰度圖像 I 轉換為二進制圖像。輸出圖像 BW 將輸入圖像中亮度值大於 level 的像素替換為值1 (白色),其他替換為值0(黑色)。你指定 level  [0,1]之間,不用管輸入圖像的等級。函數graythresh 能用來自動計算變量 level 。如果你不指定 level im2bw 使用 0.5


BW = im2bw(X,map,level)

將顏色表為 map 的索引圖像 X 轉換為二進制圖像。


BW = im2bw(RGB,level)

RGB 真彩圖像轉換為二進制圖像。Level是歸一化的閾值,值域為[0,1]。Level可以由函數graythresh(I)來計算。
如果輸入圖像不是灰度圖像, im2bw 首先將圖像轉換為灰度圖像,然后通過閾值將灰度圖像轉換成二進制圖像。


例子load trees

 

BW = im2bw(X,map,0.4);

 

imview(X,map),imview(BW)

 

(拓展一下)各個函數的使用:

im2uint8:將輸入轉化為uint8,有效的輸入圖像數據類型包括logical, uint8, uint16, double

im2uint16:將輸入轉化為uint16,有效的輸入圖像數據類型包括同上

mat2gray:將輸入轉化為double,但是輸出的double數據都在[0, 1]范圍內,有效的輸入只有double

im2double:如果輸入的不是double類型圖像,在輸出都是在[0, 1]范圍,如uint8則輸出為uint8/255。但如果是double類型,則原樣輸出

im2bw:上面已經解釋了,輸出的是二值圖像。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM