如何解析DICOM文件中的Pixel Data ?

DICOM文件可以大致分爲兩部分:
一部分:與圖像相關信息,包括患者信息,檢查信息,序列信息,圖像信息等等。
另一部分:圖像的像素數據。
在解析DICOM文件中的像素數據的時候,我們先需要讀取以下圖像相關信息:
以下某個CT影像中的圖像信息示例:

(0028,0002)        Samples per Pixel               VR: US        Length: 2         Value: 1 
(0028,0004)        Photometric Interpretation  VR: CS        Length: 12         Value: MONOCHROME2
(0028,0010)        Rows                        VR: US        Length: 2         Value: 512 
(0028,0011)        Columns                     VR: US        Length: 2         Value: 512 
(0028,0030)        Pixel Spacing               VR: DS        Length: 22         Value: 0.48828125\0.48828125
(0028,0100)        Bits Allocated              VR: US        Length: 2         Value: 16 
(0028,0101)        Bits Stored                 VR: US        Length: 2         Value: 12 
(0028,0102)        High Bit                    VR: US        Length: 2         Value: 11 
(0028,0103)        Pixel Representation        VR: US        Length: 2         Value: 0 
(0028,1050)        Window Center               VR: DS        Length: 12         Value: 00100\00100
(0028,1051)        Window Width                VR: DS        Length: 12         Value: 00500\00500
(0028,1052)        Rescale Intercept           VR: DS        Length: 6         Value: -1000
(0028,1053)        Rescale Slope               VR: DS        Length: 2         Value: 1
(0028,2110)        Lossy Image Compression     VR: CS        Length: 2         Value: 01
(0028,2112)        Lossy Image Compression Ratio   VR: DS        Length: 8         Value: 6.228918

1.(0028,0002)        Samples per Pixel 
        每一個像素的取樣數,一般來說,CT,MR,DR等灰度圖像都是1,而彩超等彩**圖像都是3,分別表示R, G, B三個顏色通道。

2.(0028,0004)        Photometric Interpretation
    我們經常碰到的Photometric Interpretation有以下幾種類型:
        Monochrome2  一般的灰度圖像都採用這種,Pixel值越大,圖像就越白。
        Monochrome1 只有部分CR, DR圖像使用,Pixel值越大,圖像就越黑。
        Palette Colour 一般用於彩超圖像,每個像素佔用8位或者16位,調色板保存在[0028,1201]RedPaletteColorLookupTableData, [0028,1202]GreenPaletteColorLookupTableData, [0028,1203]BluePaletteColorLookupTableData的屬性中。
        RGB  這是最常用的彩**圖像格式。
        YBR_FULL  另外一種彩**圖像格式, 存儲格式爲Y(Luminance 亮度), B(Blueness 藍色), R(Redness, 紅色)
        YBR_FULL_422 一般用於JPG有損壓縮格式的彩**圖像,每兩個像素共同使用32位,每一個像素都有自己的Y(Luminance 亮度),但是共享相同的B(Blueness 藍色), R(Redness, 紅色)。所以,它的像素值存儲方式是:YYBR,YYBT,YYBR
        YBR_RCT 用於JPEG 2000無損壓縮彩**圖*像,Reversible Color Transformation, 可逆色彩變換。
        Y = (R+2G+B)/4,  CB = B-G  , CR = R - G
        G = Y - (CR+CB)/4 ,  R = CR + G,  B = CB + G
        YBR_ICT 用於JPEG 2000有損壓縮彩**圖像 Irreversible Color Transformation, 不可逆色彩變換。
        Y = + .29900R + .58700G + .11400B
        CB = - .16875R - .33126G + .50000B
        CR = + .50000R - .41869G - .08131B

3.  (0028,0010)Rows 
    圖像的高度

4.  (0028,0011)Columns
    圖像的寬度

5.  (0028,0030)Pixel Spacing  
    圖像像素間距,讀取Pixel Data的時候不需要,主要用於長度測量。

6.  (0028,0100)Bits Allocated
    一個像素取樣點存儲時分配到的位數,一般RGB的圖像,每一個顏色通道都使用8位,所以一般取值爲8。對於灰度圖像,如果是256級灰階,一般就是8位。如果高於256級灰階,一般就採用16位。

7. (0028,0101)Bits Stored          
        一個像素取樣點存儲時使用到的位數。比方說示例中CT影像,採用的是4K灰階,像素值取值範圍爲0~4095,所以使用到的位數爲12位。

8.  (0028,0102)High Bit 
    最高位序號,它定義了存儲點在分配的內存中的排列方式,它的值是最後一個bit的序號。如果第一個bit放在0位,那麼最後一個bit爲Bits Stored -1。

9.  (0028,0103)Pixel Representation 
     如果這個值爲0, 這表明是無符號類型,其VR類型應該爲US,Unsigned Short. 如果這個值爲1, 這表明爲有符號類型,其VR類型應該爲SS,Signed Short.

10.  (0028,1050)Window Center 和 (0028,1051)        Window Width
       窗寬窗位,不解釋

11.  (0028,1052)Rescale Intercept 和 (0028,1053)Rescale Slope
      用於根據像素值計算原始值,比方說,CT可以用於計算HU值。
      比方說:HU = Rescale Slope * X + Rescale Intercept.

12.  (0028,2110)Lossy Image Compression
      當該值爲1時,表明該圖像曾經經過有損壓縮處理。即使後來解壓縮後,再用非壓縮格式存儲和傳輸,該值也需要保持爲1.

13.   (0028,2112)Lossy Image Compression Ratio
      有損壓縮壓縮率。

對於幀圖像,我們還需要讀取Number of Frames (0028,0008)來獲取幀數,然後,逐幀讀取Pixel Data。

對於彩*圖像,我們還需要讀取Planar configuration (0028,0006),它定義了各個彩色通道值在Pixel Data中排列的排列方式。
當此值爲0的時候,它這樣排列的RGBRGBRGBRGBRGB。
當此值爲1的時候,它是這樣排列的:RRRRR......GGGGG.......BBBBB。 對於多幀圖像,它是這樣排列的:第一幀的RRR..,第一幀的GGG...,第一幀的BBB...,第二幀的RRR..,第二幀的GGG...,第二幀的BBB...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章