摘要:為實現對數字X光圖像進行快速分割,提出一種針對直方圖的包絡特征進行處理的新方法。該方法采用分水嶺算法對數字X光圖像的直方圖一維信號進行處理。首先計算出圖像的直方圖,然后對直方圖進行形態學濾波,提取出直方圖的包絡。在此基礎上對直方圖的包絡采用分水嶺算法自動提取出最佳閾值。用提取出的閾值進行基于閾值的初步分割,然后進一步采用基于標記的分水嶺算法對初步分割的二值圖像作進一步分割。通過實驗表明,采用該方法可以有效地分割大幅X光圖像。
關鍵詞:直方圖;最佳閾值;包絡線;分水嶺算法;X光圖像
中圖分類號:TP317文獻標志碼:A
文章編號:1001—3695(2007)03—0286—03
圖像分割是由圖像處理到圖像分析的關鍵步驟,是一種基本的計算機視覺技術。采用圖像分割可以提取出感興趣的目標及其特征。在X光圖像中采用圖像分割技術可以輔助醫生發現異常區域,幫助醫生作出正確診斷。圖像分割方法有很多種,根據分割過程中處理策略的不同以及像素灰度值的不連續性和相似性,大致可以分為基于并行邊界、串行邊界、并行區域和串行區域四大類。其中基于閾值的方法是最常見的并行直接檢測區域的分割方法。
閾值的選取方法有很多種,如基于像素閾值選取法中有最小閾值選取法、最優閾值選取法[3]和迭代閾值法[1],這些方法由于只考慮各像素本身灰度值,魯棒性較差。為了解決魯棒性問題,有學者提出基于區域的閾值選取方法。這些方法主要有直方圖變換法[1]、灰度值和梯度值散射法、依賴坐標的閾值選取方法以及基于過渡區的方法等。上述閾值選取方法分割得到的圖像包括多個區域,通常還需要通過標記把它們分別提取出來,因此需要檢查各像素與其他相鄰像素的連通性。基于區域的閾值分割方法雖然解決了魯棒性問題,但是所確定的閾值仍然作用于整幅圖像的每個像素,所以上面提到的方法運算量較大,而且分割出的區域也較多,所以并不適合X光圖像的分割處理。針對上述方法的缺點,本文提出了一種基于數學形態學新的選取閾值的方法。
1數學形態學與分水嶺算法
分水嶺算法是借用地形學中的概念,主要用來處理二維灰度圖像分割問題。在形態學中將灰度圖像看做地形表面每個像素的灰度值表示該點的海拔高度,局部最小值對應谷底,局部最大值對應山峰。計算分水嶺的算法是基于淹沒模型的。該模型原理如圖1所示。在圖像中局部最小值為地形表面的洞,然后將地形表面逐漸浸入水中,從最小值開始水會逐漸充滿各個不同的盆地。在水逐漸由下向上淹沒的過程中首先淹沒最低的盆地,繼續淹沒,當兩個盆地中的水即將匯合時,建立一道水壩隔開。對于整個地形表面實施淹沒并將來自不同盆地的水隔開,這樣可以把圖像分割成兩個集合,匯水盆地和水壩(稱為分水嶺)。等到整個過程結束時,每個局部最小值會被堤壩完全包圍,所建立堤壩的全體對應的分水嶺也對應圖像輪廓,所以采用這樣的算法可以起到分割圖像的目的。
利用上面提到的數學形態學基本算法和分水嶺算法,并推廣應用于直方圖處理中,將一維直方圖看做二維圖像的一個特例。用分水嶺算法處理直方圖,求出直方圖的峰作為水壩,然后再求兩峰之間的最低點作為閾值。
2基于一維直方圖信號的自動閾值提取
圖像的灰度直方圖是圖像中各像素灰度值的統計量,閾值選取方法是根據直方圖進行的,對直方圖選取兩個峰之間的谷作為閾值可以將目標與背景分離。一般情況下很多圖像的直方圖是多峰直方圖,所以可以計算各峰之間的谷獲取多個閾值,來選取不同的目標和感興趣區域。但是傳統的基于直方圖選取閾值的方法由于多峰直方圖具有多個峰,所以往往在實際計算時會選取出很多閾值,這樣需要采用概率統計的方法從中選取最佳閾值,計算量很大。為了避免作大量概率統計方面的計算,下面給出基于標記的分水嶺算法自動選取最佳閾值。
因為直接采用分水嶺算法會導致過分割,即圖像被分割成過多區域而無法識別輪廓,這在處理直方圖時表現為分割出過多閾值。解決過分割問題有兩種辦法:分水嶺算法+區域合并方法[6];標記(Markers)+分水嶺算法。第一種方法缺點是計算過于耗時。F.Meyer將標記和分水嶺算法相結合,完成了圖像分割[7]。在Meyer的研究中需要手工設定一系列標記。這里采用自動設定標記的辦法,分割前采用標記函數對待分割區域進行標記。
將直方圖的包絡看做一條曲線,應用分水嶺算法自動計算直方圖中兩峰之間的最小值作為閾值。在實際應用中由于直方圖經常不是平滑的,所以在提取閾值前需要平滑,這里采用形態學濾波方法對其進行平滑。自動提取直方圖閾值的算法步驟如下:
(1)計算圖像的直方圖。
(2)對直方圖進行形態學濾波,平滑直方圖曲線。采用閉合開啟形態學濾波器對直方圖進行濾波,這樣可以對直方圖進行平滑,去除直方圖中的毛刺。
(3)將濾波后直方圖中的所有點按照大小進行排序,把最小值點作為匯水盆地。
(4)從最低點開始,給各個盆地分別分配唯一的標記。
(5)對每個標記區域搜索鄰域,把屬于其覆蓋域的相鄰點賦予同樣的標記。
(6)重復(4)和(5)逐漸增加搜索高度,擴大各個標記區域的范圍。當兩個標號的盆地有共同的相鄰點就將該點歸于水壩集合。
(7)將水壩作為直方圖的峰,計算相鄰兩個水壩之間的最小值作為閾值。
如果直方圖為負,過程與上述方法相反,即提取兩個谷之間的峰。算法流程如圖2所示。
為了避免選取過多冗余的峰,采用提取骨架操作去掉靠近直方圖限定范圍內檢測到的峰,然后計算提取的骨架與分水嶺算法的交集作為最終的峰。通過上述方法可以計算出多個最佳閾值,不同閾值對應不同區域。綜上所述,該方法可以提取出多個感興趣區域,既可以避免選取過多閾值,又可以選取出最佳的閾值。
采用一維自動直方圖閾值分割法處理X光圖像得到如下結果,如圖3—6所示。
該算法自動計算出四個閾值,設為Ti(i=1,2,3,4)。上述閾值代表不同感興趣域區,閾值越大表示感興趣區域越小。選取閾值T4=215為例,作為閾值進行初步分割,得到圖6的結果。提取圖6的輪廓,得到如圖7所示的結果。為了便于進行整體對比,在實際分割中還需要對整個二維圖像進行分割。
3二維圖像的分水嶺分割
在對圖像采用分水嶺算法[5]分割之前,首先采用形態學梯度的辦法計算出梯度圖像,然后把圖像的梯度作為輸入,形態學梯度定義為 。
分水嶺分割算法步驟如下:
(1)將所有像素按照灰度大小進行排序。
(2)從最低點開始,為各個盆地分別分配唯一的標記。
(3)對每個標記區域搜索鄰域,把屬于其覆蓋域的相鄰點賦予同樣的標記。
(4)重復(2)和(3)逐漸增加搜索高度,擴大各區域的范圍,當兩個標號的盆地有共同的相鄰點時就將該點歸于水壩集合。
二維圖像分水嶺分割算法對原始圖像進行分割得到如圖8所示的分割結果,圖9為分割的輪廓,然后將基于自動提取閾值的分割結果與分水嶺算法分割結果相結合,如圖10所示。在圖10中提取出了感興趣區域。
4實驗結果與分析
通過實驗我們發現,原始圖像采用Vencent[5]算法分割的結果,只是本文算法在T1時的特例。可見,本文算法不但處理速度快,而且取得的效果也基本滿足輔助診斷的要求。通過實驗還發現,采用Vencent方法對整幅圖像進行了分割,而且分割出許多小區域,有時還容易導致過分割,這些過分割的區域不但對醫生作出診斷沒有任何幫助,而且還消耗了計算機運算時間和物理內存。采用本文方法,可以有效分割出病灶的輪廓,同時不會產生過分割現象,如圖7—圖10所示。
設整個直方圖包絡線上表示灰度的點的個數為n,則遍歷所有點的時間復雜度為O(n),為每個灰度值確定歸屬所需要
的時間復雜度為O(n(n+1)/2),整個算法的時間復雜度為O(n+n(n+1)/2)。事實上由于醫學圖像只有256級灰度,即n=256,所以本算法在時間復雜度上能夠滿足實時圖像處理的要求。
為了驗證實際效果,將本方法與其他方法在運行時間上進行了比較。實驗采用的測試環境為Pentium42.4GHzPC機,測試圖像為最大型號IP板采集到的圖像,圖像大小為1400×1700。通過與水平集、自適應閾值分割算法、分水嶺算法及基于標記的分水嶺算法在運算時間上進行對比,獲得表1的結果。
5結束語
本文提出的方法處理的是圖像直方圖包絡。這種基于直方圖特征的處理方法,由于處理的數據量小,所以處理速度很快。該方法在算法上便于計算機實現。
在醫學X光圖像處理中,通過圖像分割提取出感興趣區一直是比較困難的問題。本文提出的基于自動選取多個閾值的分割方法,采用基于標記的分水嶺算法對圖像直方圖進行提取閾值會取得多個閾值,不同閾值代表不同的感興趣區域。在進行閾值分割的基礎上,再結合分水嶺算法對圖像進行分割往往可以有效提取感興趣區,從而獲得滿意的分割結果。實驗結果表明,本文提出的算法可以有效地分割出X光圖像中感興趣區域,有利于醫生的臨床診斷。