2016-09-25 177 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推导三维空间内的像素值的位置。