王浩軍 楊燕 屈瑞娜



摘 要:針對DICOM格式的CT序列圖像,該文提出了一個基于Matlab自動批量實現(xiàn)多種通用圖像格式的轉(zhuǎn)換方法。該方法利用Matlab現(xiàn)有的圖像處理函數(shù),通過編程完成了DICOM格式圖像的批量讀入、CT數(shù)據(jù)轉(zhuǎn)換、調(diào)窗處理和多圖像格式轉(zhuǎn)換等,實現(xiàn)了轉(zhuǎn)換過程自動化。它具有轉(zhuǎn)換效率高、速度快,結(jié)果顯示效果好的特點,有一定的應(yīng)用和推廣價值。
關(guān)鍵詞:DICOM格式 圖像格式轉(zhuǎn)換 CT序列圖像 Matlab
中圖分類號:TP39 文獻標識碼:A 文章編號:1672-3791(2017)04(c)-0008-04
Abstract: The paper presents a method of DICOM format conversion of CT series image based on Matlab. The image processing functions of Matlab are used to realize DICOM multiple images reading, CT data conversion, CT window adjusting, multiple image formats conversion etc.. The whole conversion procedure is implemented automatically. The results show that the method has advantages on high efficiency, fast speed and good display.
Key Words: DICOM;Image format conversion;CT series image;Matlab
隨著醫(yī)學(xué)影像技術(shù)和通信網(wǎng)絡(luò)技術(shù)的發(fā)展,不同廠家的醫(yī)學(xué)影像設(shè)備與醫(yī)院信息化系統(tǒng)之間,需要統(tǒng)一的標準實現(xiàn)醫(yī)學(xué)圖像的存儲和傳輸,為此DICOM(Digital Imaging and Communication in Medicine)醫(yī)學(xué)數(shù)字成像和通信標準應(yīng)運而生[1]。該標準包含了醫(yī)學(xué)數(shù)字圖像的采集、存儲、通信、顯示和查詢等開放式的信息交換協(xié)議。目前各種醫(yī)療影像設(shè)備(如CT,MRI,B超等)幾乎都采用DICOM3.0標準存儲圖像文件,但DICOM格式的圖像主要應(yīng)用于帶有相應(yīng)標準接口的設(shè)備中,不是普通計算機應(yīng)用軟件可識別的圖像格式,同時也不能在通用的圖像處理軟件中直接打開。為了科研、教學(xué)和學(xué)術(shù)交流等目的,有必要將這些標準數(shù)字影像設(shè)備獲取的DICOM格式圖像轉(zhuǎn)換成通用格式的圖像文件,如BMP,TIFF,JPEG和RAW等,以便使用普通計算機對它們進行后續(xù)處理。當前流行的圖像處理軟件如:Photoshop CS3,雖然已具有單幅DICOM圖像的轉(zhuǎn)換功能,但應(yīng)用起來費時費力,需要人工手動操作完成;另外不管是CT還是 MRI成像設(shè)備產(chǎn)生的DICOM圖像多為序列圖像,要進行格式轉(zhuǎn)換的圖像文件數(shù)目較多,如果用Photoshop手工完成序列圖像格式轉(zhuǎn)換的話,工作量巨大;因此,設(shè)計一個批量完成序列圖像的DICOM格式轉(zhuǎn)換程序,顯得十分必要。筆者開發(fā)了一個基于MATLAB編程的自動轉(zhuǎn)換程序,實現(xiàn)了DICOM格式的CT序列圖像的批量轉(zhuǎn)換,具有簡單易行的特點。
1 CT圖像和CT值
CT (Computed Tomography)即電子計算機斷層掃描,它的工作基本原理是利用X射線束對人體某部位一定厚度的層面進行掃描。由掃描所得的信息經(jīng)計算而獲得每個體素的X線吸收系數(shù),并按矩陣形式排列,從而重建成二維層面的CT圖像,其中常用的是橫斷面圖像。為了顯示整個組織器官,掃描后圖像多為連續(xù)的層面圖像,即序列圖像。每一個CT層面圖像是由一定數(shù)目的像素構(gòu)成,不同CT裝置所得圖像的像素大小及數(shù)目不同,數(shù)目越多分辨率越高。CT圖像的像素值大小反映了器官和組織對X射線的吸收程度,因此與普通X線圖像一樣,黑影表示低吸收區(qū)(低密度區(qū)),白影表示高吸收區(qū)(高密度區(qū))[2]。一般空氣密度最低,人體中的骨皮質(zhì)密度最高,組織器官的密度不同從而構(gòu)成了CT影像差異。在實際應(yīng)用中,不用吸收系數(shù),而是換算成了CT值,利用CT值定量組織密度,單位是Hu(Hounsfield unit)。水的CT值定為0 Hu,人體組織相對于水的CT值高低分布,基本在-1 000 Hu~+1 000 Hu之間。高密度區(qū)CT值大,低密度區(qū)CT值小。
2 DICOM圖像格式
一個DICOM圖像文件是一個信息體實例的數(shù)據(jù)集,主要包括設(shè)備,患者,檢查和圖像等信息[3]。DICOM圖像文件結(jié)構(gòu)主要由文件頭和數(shù)據(jù)集合兩大部分組成。文件頭前128個字節(jié)通常為00H,然后是4個字節(jié)的16進制代碼代表字符串“DICM”的文件前綴,這是判斷該文件是否為DICOM文件的關(guān)鍵。數(shù)據(jù)集由數(shù)據(jù)元素按一定順序組成,它既包含了與成像實例相關(guān)的數(shù)據(jù),如病人姓名、成像方式、圖像大小等;又包括了成像實例的圖像像素數(shù)據(jù)。數(shù)據(jù)元素結(jié)構(gòu)由標簽(Tag)、數(shù)據(jù)表示(VR)、數(shù)據(jù)長度(VL)和數(shù)據(jù)(V)四個字段組成。Tag是數(shù)據(jù)元素的標記號,每個標簽有特定的含義,分為組號和元素號。表1給出了幾個與圖像信息有關(guān)的數(shù)據(jù)元素標簽;VR是對數(shù)據(jù)元素中數(shù)據(jù)的類型表示,如字符型、整型、浮點型等;VL是指該數(shù)據(jù)元素中數(shù)據(jù)的字節(jié)長度;V主要表示數(shù)據(jù)元素的取值。以圖像數(shù)據(jù)元素為例,(7FE0,0010)表示圖像數(shù)據(jù)元素的Tag字段,后面緊跟四個字節(jié)的VR字段和四個字節(jié)的VL字段,然后圖橡像素數(shù)據(jù)依據(jù)VR字段的不同按非壓縮方式或壓縮方式存儲構(gòu)成數(shù)據(jù)段。
3 DICOM格式CT序列圖像的批量轉(zhuǎn)換方法
由于美國MathWorks公司的Matlab軟件在圖像處理和可視化方面功能強大,編程語言簡潔、高效,并具有強大的矩陣運算能力,因此,該文采用Matlab R2016b對CT序列圖像進行了批量轉(zhuǎn)換,轉(zhuǎn)換方法流程見圖1。
3.1 讀取DICOM圖像文件元信息和初始化相關(guān)參數(shù)
根據(jù)前面介紹的DICOM圖像格式可知,有關(guān)圖像成像信息的數(shù)據(jù)元素包含了圖像文件元信息的重要參數(shù),如患者姓名、序列號、成像方式、圖像大小等,它位于128字節(jié)的文件頭之后,圖像像素數(shù)據(jù)元素之前;這些參數(shù)對于后續(xù)的圖像轉(zhuǎn)換必不可少,但一般情況下不能直接讀取。Matlab圖像處理工具箱提供了相應(yīng)的函數(shù)“dicominfo(filename)”,通過它可以獲取圖像文件名、圖像大小、像素字節(jié)數(shù)、窗寬、窗位等信息;根據(jù)這些信息初始化圖像行數(shù)、列數(shù)、截距、斜率,以及窗寬和窗位等參數(shù)。圖2給出是C盤文件夾“se2”下的IM1.dcm圖像文件元的部分信息。
3.2 批量讀入DICOM圖像數(shù)據(jù)
“dicomread(filename)”是DICOM圖像的讀入函數(shù)[4],可獲取指定文件“filename”的DICOM圖像像素數(shù)據(jù)。該文為了批量轉(zhuǎn)換文件夾下CT序列圖像的格式,用循環(huán)結(jié)構(gòu)依次讀入序列圖像文件。這些文件的文件名是由字符串“IM”加上CT掃描層序號構(gòu)成。下面是相應(yīng)的程序段代碼,se2文件夾下序列圖像被依次讀入,其中省略部分是指相應(yīng)的轉(zhuǎn)換、調(diào)窗處理和格式轉(zhuǎn)換等。
3.3 圖像數(shù)據(jù)轉(zhuǎn)換和調(diào)窗處理
在DICOM圖像讀取過程中,其原始數(shù)據(jù)是重建后數(shù)據(jù),并不是標準的CT值,必須經(jīng)過轉(zhuǎn)換生成CT值數(shù)據(jù);然后再通過對CT值的調(diào)窗處理,將動態(tài)范圍很大的CT值數(shù)據(jù)映射到顯示器設(shè)備的灰度級范圍(一般為0~255),從而產(chǎn)生圖像的最佳顯示效果[5]。
首先讀取DICOM文件元信息(0028,1052)的rescale intercept(截距)和(0028,1053)的rescale slope(斜率)參數(shù),通過下面公式計算得到CT值HU:
HU=dicpixel*slope+intercept
其中dicpixel為DICOM圖像的原始數(shù)據(jù),slope為轉(zhuǎn)換斜率,intercept為轉(zhuǎn)換截距。接著進行調(diào)窗處理。該文進行的是線性調(diào)窗處理,該方法實現(xiàn)簡單,效果滿足要求,其數(shù)學(xué)表達式如下:
其中dcm是調(diào)窗處理后圖像像素數(shù)據(jù)矩陣,截距、斜率、窗寬、窗位參數(shù)信息由“dicominfo(filename)”函數(shù)獲得(見3.1節(jié)),具體取值分別是-1024,1,400,40。
3.4 圖像格式的轉(zhuǎn)換和保存
為了將圖像調(diào)窗處理后的圖像數(shù)據(jù),保存成Windows操作系統(tǒng)中所支持的通用圖像格式如JPG,BMP和RAW等,并實現(xiàn)圖像格式的批量轉(zhuǎn)換;Matlab實現(xiàn)起來十分非常方便,只需要簡單的幾條語句就可完成,具體如下,將下面的格式轉(zhuǎn)換和保存語句分別放到3.2節(jié)程序段省略部分的最后位置即可。
(1) JPG格式的轉(zhuǎn)換和保存。
4 結(jié)果和討論
利用該文介紹的方法,將GE 公司8排螺旋CT機上采集的口腔頜面部CT序列圖像,進行了圖像格式的批量轉(zhuǎn)換,下面給出了該序列中連續(xù)10幀DICOM圖像的JPG格式轉(zhuǎn)換后效果(如圖3所示)。
從CT機上直接獲得的DICOM序列圖像文件,一般無法在Windows系統(tǒng)的圖像處理平臺上直接操作和處理,因此,有必要將它們轉(zhuǎn)換成通用的圖像格式文件。當前,某些圖像軟件,如Photoshop CS3雖然可以實現(xiàn)單幅DICOM圖像的格式轉(zhuǎn)換,但轉(zhuǎn)換步驟復(fù)雜;當完成DICOM序列圖像的轉(zhuǎn)換時,工作量相當大;為此該文提出了基于Matlab的DICOM序列圖像多格式批量自動轉(zhuǎn)換方法。該方法具有轉(zhuǎn)換效率高,實現(xiàn)方法簡單,轉(zhuǎn)換后顯示結(jié)果好的特點,在臨床醫(yī)學(xué)研究中有一定的應(yīng)用和推廣價值。
參考文獻
[1] Digital Imaging and Communicotions in Medicine[EB/OL].http://dicom.nema.org/DICOM/about-DICOM.html.
[2] 王鳴鵬.醫(yī)學(xué)影像技術(shù)學(xué)(CT檢查技術(shù)卷)[M].北京:人民衛(wèi)生出版社,2012.
[3] 魏軍,劉榮鑫,宋國興,等.DICOM圖像文件解析及程序設(shè)計[J].濟南大學(xué)學(xué)報:自然科學(xué)版,2007,21(3):215-218.
[4] 高向軍,田聯(lián)房,王立非,等.利用Matlab實現(xiàn)醫(yī)學(xué)圖像處理與分析[J].計算機應(yīng)用研究,2008,25(6):1747-1749.
[5] 王光飛,劉杰,劉文.DICOM醫(yī)學(xué)圖像的調(diào)窗技術(shù)及DIB顯示[J].醫(yī)療裝備,2005,18(8):1-5.