2014-09-13 76 views
1

可能是什麼,這通常X射線的DICOM文件在搞砸方式得到繪製的原因:可能是什麼不好的DICOM圖像繪圖的原因

enter image description here

使用的算法是如下:

原始圖像矩陣是3D:

int [1:2014, 1:2014, 1:3] 110 51 99 113 52 101 111 53 102 110 ... 

該RGB轉換由式爲灰度:

gray = 0.3*mat[,,1] + 0.59*mat[,,2] + 0.11*mat[,,3] ; 

,然後將其指定顏色繪製後:

grey(0:64/64) 

哪裏可能是錯誤?

我使用oro.dicom包中的R與功能:

jj = readDICOMFile(fname, endian = "little", flipud = TRUE, DICM = TRUE, skipSequence = FALSE, pixelData = TRUE, warn = -1, debug = FALSE) 

,它返回一個矩陣JJ $ IMG,其結構是:

int [1:2014, 1:2014, 1:3] 110 51.... 

我然後將其轉換爲灰色和繪製它。如果是rgba,矩陣應該是2014 * 2014 * 4而不是* 3。 dicom圖像的標題提到「PhotometricInterpretation」爲「RGB」。標題還提到了2014年的行和列。難道是與位問題:leadtools.com/sdk/medical/dicom-spec17.htm

編輯:位分配是8,存儲位是8和highBit是7

以下是鏈接樣品dicom圖像,它有類似的圖像矩陣,並給出類似的錯誤:http://www.barre.nom.fr/medical/samples/files/US-RGB-8-esopecho.gz

+2

看起來像一個箭步問題給我。就像你正在索引假設RGB和它的RGBA或沿着這些線的東西。 – Jim 2014-09-13 03:51:30

+0

分配的位數是8,存儲的位數是8,highBit是7.這有幫助嗎? – rnso 2014-09-13 03:54:36

+0

如何將rgba轉換爲灰度?我無法立即在網上找到它。 – rnso 2014-09-13 03:57:18

回答

3

readDICOMFile可能有一個錯誤。您可以修復由重新排列圖像陣列:

jj = readDICOMFile(fname, flipud = FALSE, DICM = TRUE, skipSequence = FALSE, pixelData = TRUE, warn = -1, debug = FALSE) 
img <- jj$img # extract image part 
img <- aperm(array(c(aperm(img, c(2, 1, 3))), c(3, 256, 120)), c(3, 2, 1)) # rearrange dimension 
img <- img[120:1,,] # flip ud 
grid::grid.raster(scales::rescale(img)) 

enter image description here


UPDATE

readDICOMFile有另一個錯誤。這是你想要的。 你可能會更好地報告這個,但對oro.dicom的作者。

img <- jj$img # extract image part 
img <- aperm(array(c(aperm(img, c(2, 1, 3))), c(3, 256, 120)), c(3, 2, 1)) # rearrange dimension 

# conversion b/w unsigned and signed 
img <- ifelse(img > 0, img, 256+img) 

# window-ing 
wc <- 127 
ww <- 255 

ymin <- 0 
ymax <- 1 

img2 <- ifelse(img <= wc - 0.5 - (ww-1)/2, ymin, 
       ifelse(img > wc - 0.5 + (ww-1)/2, ymax, 
         ((img - (wc - 0.5))/(ww - 1) + 0.5) * (ymax - ymin) + ymin 
        )) 

grid::grid.raster(img2) 

enter image description here

+0

如果你也可以解釋你的代碼在做什麼,這將會很有幫助。 – rnso 2014-09-16 01:27:18

+0

是的,它的工作原理。但是,由於窗口寬度/中心/色調差異,圖像看起來與原始圖像非常不同。我們如何調整這些以使它看起來像原始的(我在上面的問題中發佈)。 – rnso 2014-09-16 01:44:27

+0

該圖像的窗口中心和寬度分別爲127和256。 (並且不需要翻轉) – rnso 2014-09-16 01:52:25

相關問題