2016-09-25 181 views
2

我試圖在使用dicom庫的python中獲取dicom文件的像素值。python dicom - 從dicom文件中獲取像素值

但它只返回一個帶零的數組。

我的代碼是這樣的:

import dicom 

import numpy 

ds=pydicom.read_file("sample.dcm") 

print(ds.pixel_array) 

,結果是

[[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
..., 
[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0]] 

你有任何想法如何得到的像素的值是多少?

非常感謝。

Andras

回答

1

所寫的代碼應該可以工作。有可能數組的開始和結尾都是真正的零。

查看圖像中間的東西通常更有意義。

例如爲:

midrow = ds.Rows // 2 
midcol = ds.Columns // 2 
print(ds.pixel_array[midrow-20:midrow+20, midcol-20:midcol+20]) 

如果它是真正的零無處不在,那麼要麼是真實的圖像或某種錯誤的。如果沒有嘗試過,用dicom閱讀器閱讀也許會有所幫助。

-1
import dicom 
import dicom_numpy 


dataset = dicom.read_file('sample.dcm') 
pixels, ijk_to_xyz = dicom_numpy.combine_slices([dataset]) 

這裏pixels將包含適當縮放像素值,並且ijk_to_xyz是4×4矩陣仿射映射的索引到DICOM患者的座標系。

該代碼片段使用dicom-numpy,這是一個基於pydicom構建的更高級別的抽象。

從一組DICOM文件中提取的像素值時,它可以處理最常見的情況:

我們用它在我們所有的項目,我們需要從DICOM文件的圖像數據提取到一個NumPy的ndarray推導三維空間內的像素值的位置。