python dicom - 从dicom文件获取像素值

时间:2016-09-25 13:22:25

标签: python numpy pixel dicom

我试图使用dicom库在python中获取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]]

您是否知道如何获取像素值?

提前多多感谢。

安德拉什

3 个答案:

答案 0 :(得分:1)

编写的代码应该有效。数组的开头和结尾可能是真正的零。

查看图像中间的某些内容通常更有意义。

E.g:

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

如果它到处都是真正的零,那么这就是真实的形象或某种形式的错误。如果没有尝试过,也许用dicom查看器阅读会有所帮助。

答案 1 :(得分:0)

应该有价值观。如果您使用IDE(例如Spyder),您可以在变量管理器中看到它。

答案 2 :(得分:-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是将索引映射到DICOM患者坐标系的4x4仿射矩阵。

此代码段使用dicom-numpy,这是在pydicom之上构建的更高级别的抽象。

它处理从一组DICOM文件中提取像素值时最常见的用例:

我们在所有需要将DICOM文件中的图像数据提取到NumPy ndarray的项目中使用它。