我想读取一些DICOM文件,所以我正在测试
pydicom
,我认为它非常有用。现在我想加载现有的DICOM文件,将像素数据数组替换为另一个像素数组(例如预处理或字面上的另一个DICOM像素数组),最重要的是,我想再次使用任何DICOM查看器应用程序读取它。对于这个测试,我使用了下面的教程代码。该代码加载一个测试数据文件。图像大小为64*64
。以下代码从原始数据进行了子采样。之后,图像的大小为8*8
,结果保存到after.dcm
中。但是当我使用DICOM查看器应用程序(我使用的是'Dicompass')读取文件时,DICOM图像的大小仍然是64*64
。我错过了什么?
我参考了pydicom
文档(http://pydicom.readthedocs.io/en/stable/getting_started.html, https://pydicom.github.io/pydicom/stable/index.html)来解决我的问题。
# authors : Guillaume Lemaitre <g.lemaitre58@gmail.com>
# license : MIT
import pydicom
from pydicom.data import get_testdata_files
print(__doc__)
# FIXME: add a full-sized MR image in the testing data
filename = get_testdata_files('MR_small.dcm')[0]
ds = pydicom.dcmread(filename)
# get the pixel information into a numpy array
data = ds.pixel_array
print(data)
print('The image has {} x {} voxels'.format(data.shape[0],
data.shape[1]))
data_downsampling = data[::8, ::8]
print('The downsampled image has {} x {} voxels'.format(
data_downsampling.shape[0], data_downsampling.shape[1]))
# copy the data back to the original data set
ds.PixelData = data_downsampling.tostring()
# update the information regarding the shape of the data array
ds.Rows, ds.Columns = data_downsampling.shape
# print the image information given in the dataset
print('The information of the data set after downsampling: \n')
print(ds)
print(ds.pixel_array)
print(len(ds.PixelData))
ds.save_as("after.dcm")
Dicompass
工具的理解还不够。你有Dicompass的许可证吗?我的Dicompass工具不允许我连续显示两个患者信息相同的DICOM图像。 - user8697183