DICOM醫學圖像顯示算法改進與實現

引言隨着Ul(超聲成像)、CT(計算機斷層成像)、MRI(核磁共振成像)、CR(計算機X線成像)、電子內窺鏡、盯(正電子發射斷層成像)和MI(分子影像)等醫學影像設備不斷涌現,利用計算機對醫學影像設備採集到的圖像進行後處理的醫學圖像處理與分析技術也越來越成爲放射科醫生和臨牀醫生進行疾病診斷的重要輔助手段。在醫學圖像的處理過程中醫生經常需要頻繁地變換窗寬、窗位來對感興趣的病竈部位進行細緻的研究,但傳統的醫學圖像的顯示方法不能達到實時顯示圖像的目的,圖像的顯示具有明顯的遲滯現象,致使醫生很多的時間浪費在等待影像的顯示中,工作效率比較低,爲此開發新的醫學圖像的顯示算法來滿足實際醫生操作的需要有着重要的實際意義。本文從討論DICOM格式的圖像顯示過程人手,分析了顯示過程中的關鍵問題,提出了統一LUT的解決方法,並對的生成算法進行了改進。
  醫學影像顯示過程分析是美國放射學會和美國電器製造商協會組織指定的用於醫學圖像存儲和傳輸的標準。目前幾乎大部分的醫學設備產生的醫學圖像都是採用這種格式。作爲一種特殊的圖像編碼格式,通用圖像瀏覽軟件並不能直接顯示,要顯示DICOM格式的醫學圖像必須將原始圖像數據經過一系列的轉換才能得到可直接在顯示設備上顯示的數據(稱之爲P—Values)。DICOM醫學圖像顯示轉換過程如圖1所示,需要經過Modality LUT、VOI LUT、Presentation LUT三個轉換過程,最終輸出的P Values纔是可以直接顯示的圖像數據。
  Modality LUT轉換(數據規範化轉換通常不同生產廠商的設備很難保證在一種設備上生成的圖像和其他生產廠商的同類型設備上生成的圖像在度量上是一致的,爲此就需要將不同設備廠家產生的圖像的原始數據轉換到一個標準的度量空間,轉換就是完成這個功能的。醫療設備的生產廠商都會在自己的圖像中採用DICOM標準規定的格式說明如何將自己的數據轉換爲標準圖像數據,中規定可以使用通過查找表(Look Up Table,簡稱LUn查找和通過斜率/截距(RescaIe/轉換兩種方法中的一種。
  查找表方法(Modality LUT)是一種非線性變換算法。一個查找表由很多數據項組成,每一個數據項爲相應原始數值轉換後的數據值,同時還會提供一個被轉換爲查找表第一個數據項的原始數據的數據值。在進行數據轉換時只要知道被轉換爲查找表第一項的原始數據,比原始數據大1的數據則轉換爲查找表第二項的值,比原始數據大2的數據轉換後的數據則爲查找表的第三項的值,依次類推直到查找表的最後一項。
  大於查找表能轉換的最大的原始數據則轉換爲查找表的最後一項的值,小於查找表能轉換的最小的原始數據則轉換爲查找表的第一項的值。用公式表示爲:其中:M:規範化後的標準圖像像素值,Fp:原始像素值,Fpmin:被轉換爲查找表第一項的原始數據,:LUT中的第一個數據項的值,Mp—pmin:
  中第Fp—Fpmin個數據項的值,Ecount:查找表的數據項個數。斜率/截足E(Rescale/Intercept)變換是一種線性變換,使用的公式是:標準圖像像素值=原始圖像像素值X斜率+截距,斜率和截距在DICOM文件中可以讀取。通過這一步轉換後圖像像素就從設備有關變成設備無關了。
  VOl(Value Of Interest)LUT轉換(感興趣區轉換由於醫學圖像數據動態範圍大(像素深度通常不低於4096個灰度級),因此一般顯示器很難提供如此高的動態範圍一次顯示整幅圖像的全部信息細節,在圖像的處理中一般都是先選擇一個操作者感興趣的區域,然後將該區域的圖像信息映射到顯示器能顯示的整個數據範圍,這樣就增加了該區域的圖像信息的對比度。這個過程DICOM標準中稱之爲感興趣區簡稱VOI)LUT(Look Up Table)轉換。臨牀醫生感興趣的窗寬、窗位調節功能就是VOI LUT轉換的一種算法實現。VOI LUT轉換可以使用設置窗寬、窗位的線性轉換算法和通過查找查找表(LUT)轉換的非線性算法兩種算法中的一種且只能使用其中的一種,具體使用哪種算法在DICOM文件中有專門的標記來設置。
  窗寬、窗位線性轉換算法是根據預知的窗寬和窗位值獲得需要顯示的窗口大小(窗寬)和中心位置(窗位),從而將窗口區域的圖像數據線性地轉換到顯示器的最大範圍內,高於或低於窗口上、下限的圖像數據則分別設置爲最高或最暗的顯示值。用公式表示爲:其中V:圖像數據,G:顯示器顯示值,gm:顯示器的最大顯示值,W:窗寬,C:窗位。在這裏窗寬是指需要顯示圖像的範圍,調節窗寬主要影響對比度,窗寬越大圖像灰度層次多,組織對比度減少,細節顯示差,而窗位也稱窗中心,表示顯示區域的中心位置,例如骨骼的窗位(C)、窗寬(W)分別爲C=400,,那麼就可以利用調窗處理將窗寬調節到骨骼窗寬,窗位調節到骨骼的窗位,然後利用上面的公式將圖像V換算成顯示器顯示值,最終得到的結果是隻顯示窗口範圍內的圖像,也就是骨骼。
  是一種查找表算法,算法處理過程同。
  Presentation LUT轉換是對圖像像素要做的最後一個變換,它用於特定圖像的顯示。這一模塊轉換完成後的輸出值爲P—Values,P-Values是獨立於任何顯示設備的特性曲線,與人的視覺反應近似相關的值,可直接作爲已經校正的軟拷貝設備或硬拷貝的輸入。
  轉換也有兩種轉換方法,一種是通過Presentation LUT進行轉換的非線性轉換方法,一種是通過Presentation Shape的轉換方法,這兩種轉換方法只能使用一種。Presentation LUT轉換的過程基本同上面介紹的兩種LUT算法。
  算法使用INDENTITY和LIN OD兩者中的一個。INDENTITY表示經過VOI LUT轉換得來的數據值即P-Values值,不需要轉換,一般圖像的軟拷貝使用這個值;LIN OD是實現圖像的硬拷貝時使用的,在軟件的開發中沒有使用到就不討論了。
  算法改進在圖像後處理軟件的開發過程中我們發現一幅圖像從調入,到顯示需要的時間比較長,而且醫生在利用醫學圖像進行疾病診斷的過程中需要頻繁地變換圖像的窗寬、窗位來對感興趣的區域進行仔細的研究,每次調窗處理後圖像的顯示具有明顯的遲滯現象,達不到醫生的臨牀診斷要求,爲了能動態、實時地對圖像進行調窗必須改進圖像處理算法,縮短每次圖像調窗處理時間。
  1使用統一的LUT算法通過分析圖像顯示過程,我們發現醫學圖像從原始數據到P—Val ues要經過Modality LUT、VOI LUT、三個處理步驟,而ModaliW LUT、又有線性變換和非線性變換兩種算法,其中非線性變換算法是採用查找表的方法,這種方法相比線性變換算法來說的優點是變換效率高,而內存的佔用會大些:而線性變換算法的優點是內存佔用少,但算法效率不高,例以S12×512的一幅醫學圖像來說,每一次VOI LUT變換需要進行51 2×51 2次的浮點數乘除法運算,對實時性要求比較高的醫學圖像處理來說性能上是難以接受的,爲此借鑑LUT的非線性處理方法考慮將線性處理算法改造成LUT算法,同時找出醫生實際操作時頻繁需要的調窗操作對應的窗寬、窗位提取出來,在圖像裝入的時候創建其相應的LUT,這樣在醫生進行調窗處理的時候不需要重新生成,直接從對應的LUT表中查表就可以了,這樣可以大大提高圖像的調窗處理時間,達到實時調窗的性能要求。在和醫生溝通後我們發現這個想法是可行的,因爲在進行疾病診斷中醫生一般會根據醫學圖像的類型和檢查的身體部位不同去查看幾種典型的窗寬、窗位。例如在CT圖像中醫生頻繁使用的是骨骼,W=2000),胸腔(C=50,W=350),肺部一600,W=1 500),腹部(C=45,W=250)等。而考慮到圖像操作時只使用一次,可以將從原始像素規範化後的數據值保存在一個矩陣中,每次VOU LUT時只要直接使用這個矩陣中的值就可以了,不需要進行算法改造了;Presentation LUT的線性處理算法在軟拷貝中只使用中的INDENTITY值也不需要算法改造:所以只需要改造VOI LUT的線性算法就可以了。
  分析Modality LUT、VOI LUT和發現DICOM標準的LUT是由多個數據項組成,第一個數據項保存的是第一個被轉換的原始數據在查找表的對應值,第二個數據項爲第一個被轉換的數據項+1的原始數據項在查找表中的對應值,依次類推,其數學表示方法爲:Y[O]=F(X0),Y[1]=F(×O+1),...Y[i] = F(X0+i)其中i的取值範圍爲【0一LUT數據項個數I,×0表示第一個被轉換的原始數據。結合我們要實現的算法,要將線性算法改造成LUT算法首先必須計算出第一個被映射的原始數據的值,被映射的原始數據的個數(決定了要構造的LUT中數據項的個數),然後是構造LUT。考慮到經過VOI LUT轉換後的灰度值最小爲0,最大爲255,灰度間隔爲1,因此第一個被映射的原始數據的值爲X0=C一0.5一(W一1)/2,數據項的個數爲W,其中C爲窗位,W爲窗寬。
  LUT生成算法優化最簡單的LUT生成算法是將取值範圍在C—W/—C+W/2之間的的整數(DICOM中圖像圖像爲整數使用VOI LUT轉換中的線性算法公式進行計算後保存到LUT中。分析發現這個線性算法需要進行大量的浮點數的乘法和除法運算,是比較耗時間的,如果能對這個線性算法進行改進將能提高圖像的處理效率。再看線性轉換的公式:
  畫直線的過程是一樣的,因此可以使用計算機圖形學中的直線掃描轉換算法來對線性算法進行優化。直線掃描轉換算法可以將大量的浮點數乘法、除法運算轉換成加法和減法運算,提高運算效率。常用的直線掃描轉換算法有數值微分(Digital differential analyzer,算、中點畫線算法[sl、算法16~,其中以Bresenham算法效率最高,因此考慮使用Bresenham算法來生成LUT。
  改造後算法在系統設計時我們使用一個全局的鏈表來保存當前系統中設置了哪些窗寬、窗位的信息,鏈表中的每個結點保存的數據類型是—個結構體,結構體的定義如下:
  結語本文在分析DICOM醫學圖像顯示過程的基礎上,使用LUT來統一DICOM醫學圖像的處理過程,並對的生成算法進行了改進,並給出了具體的代碼實現。實驗證明改進效果明顯,具有很好的實用價值。

發佈了24 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章