ImageJ中圖像二值化方法介紹 概述 二值圖像分析在對(duì)象識(shí)別與模式匹配中有重要作用,同時(shí)也在機(jī)器人視覺中也是圖像處理的關(guān)鍵步驟,選擇不同圖像二值化方法得到的結(jié)果也不盡相同。本文介紹超過十種以上的基于全局閾值的圖像二值化方法,其中最大值為255表示白色, 0 表示黑色,H表示圖像直方圖。imageJ重要開源分支Fiji中已經(jīng)實(shí)現(xiàn)了全局自動(dòng)閾值16種方法。 ImageJ演示 首先來看一下原圖,是一張人體細(xì)胞組織的圖像,顯示如下: 各種二值化方法生成的對(duì)應(yīng)的二值圖像圖像顯示如下: 迭代方法: 默認(rèn)方式是通過迭代方法來求取閾值T,通過假設(shè)閾值T來分割圖像為兩部分,對(duì)各個(gè)部分求取均值M1與M2假設(shè)T' = (M1+M2) 不等于T則令T= T'然后繼續(xù)迭代直到兩者相等。 Huang閾值分割法: 方法來自于Huang L-K & Wang M-JJ模式識(shí)別論文《ImageThresholding By minimizing the measure of fuzziness》具體可以自己看論文。 InterModes閾值分割: 該方法假設(shè)直方圖是一個(gè)雙峰模式的直方圖,對(duì)直方圖使用平滑濾波迭代多次,知道只剩下兩個(gè)最大的峰J與K則閾值為T=(J+K)/2, 如果圖像形成直方圖只會(huì)有一個(gè)單峰或者有大片平坦區(qū)域的時(shí)候,該方法不太適合。 IsoData閾值分割: 該方法基于Ridler, TW&Calvard的論文《Picture thresholding using an iterative selection method》該方法通過給定一個(gè)隨機(jī)閾值假設(shè)127把圖像分為對(duì)象與背景進(jìn)行分割,計(jì)算兩部分的均值,不斷迭代,直到閾值大于復(fù)合均值為止。最終閾值為:閾值 = (背景像素均值+對(duì)象像素均值)/2。感興趣可以自己看Paper。 Li閾值分割: 基于Li的最小交叉熵閾值迭代方法,感興趣者可以看論文《Minimum CrossEntropy Thresholding》了解更多細(xì)節(jié)。 MaxEntropy(最大熵值分割): 基于Kapur-Sahoo-Wong的《Maximum Entropy thresholdingmethod》方法實(shí)現(xiàn)該算法,ImageJ Fiji中已經(jīng)實(shí)現(xiàn)。 均值方法分割: 使用灰度圖像計(jì)算所有像素值的均值作為閾值實(shí)現(xiàn)圖像二值化分割方法。 MinError(最小錯(cuò)誤): 迭代算法基于Kittler與Illingworth的最小錯(cuò)誤閾值分割方法,初始開始迭代的閾值為均值。除了ImageJ中已有實(shí)現(xiàn),此方法在MATLAB中也有實(shí)現(xiàn)。 Minimum(最小閾值): 該方法類似于中間幀模式(InterModes),都是假設(shè)直方圖有兩個(gè)波峰,通過均值平滑濾波最終得到兩個(gè)本地最大的波峰,閾值等于yt-1>yt<=yt+1。該方法主要用于細(xì)胞圖像分析,相關(guān)論文見《TheAnalysis of cell images》。MATLAB中同樣也實(shí)現(xiàn)了該方法。 Moments(幾何矩閾值): 該方法是根據(jù)Tsai.W的論文《Moment-preserving thresholding: anew approach》 Otsu閾值 Otsu主要是圖像直方圖進(jìn)行閾值分類,從0~255之間,然后求它們的最小內(nèi)方差對(duì)應(yīng)直方圖灰度索引值作為閾值實(shí)現(xiàn)圖像二值化,OpenCV中已經(jīng)實(shí)現(xiàn),而且是OpenCV2.x全局閾值二值化方法。 Percentile閾值 該方法假設(shè)前景像素ptile=0.5,然后對(duì)直方圖按照灰度強(qiáng)度從0~255作為每個(gè)閾值分割通過迭代尋找最小比重值,最終得到閾值T。 RenyiEntropy(雷尼熵閾值分割) 跟最大熵值方法類似,唯一不同是用Renyi熵計(jì)算公式取代廣義熵值公式。 最大熵值為: 其中q取值不同決定閾值不同。通常q取1或者2。 Shanbhag(閾值分割) 該方法同樣是基于直方圖熵值實(shí)現(xiàn)的閾值分割方法。具體可以參考《Utilization of information measure as a means of image thresholding》了解原理。 Triangle(三角閾值分割) 該方法是假設(shè)直方圖只有一個(gè)波峰(單峰直方圖)使用如下方法求得最大距離對(duì)應(yīng)的直方圖灰度值即為閾值。OpenCV在其3.x版本中已經(jīng)實(shí)現(xiàn)該方法。 Yen(閾值分割) 該方法是基于直方圖數(shù)據(jù)的最大相關(guān)條件實(shí)現(xiàn)的二值圖像分割方法。 16種方法Java源代碼實(shí)現(xiàn)下載地址: https://github.com/fiji/Auto_Threshold 是不是點(diǎn)擊收藏以備項(xiàng)目需要,這么全的總結(jié)可以說2016再也沒機(jī)會(huì)出現(xiàn)了,【OpenCV學(xué)堂】2017將繼續(xù)分享有用的圖像處理與機(jī)器學(xué)習(xí)知識(shí)。 |
|