如何用python编写dicom格式的图像?

2024-04-26 00:00:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python保存一组dicom格式的图像。我将只提取PixelData字段,所以我尝试使用最少的代码/标记来完成。正在使用DICOM读取文件:

ds = dicom.read_file(currentDir + file)
Image = ds.pixel_array 

不幸的是,似乎没有函数dicom.write_文件(文件名,header=MakeOneUp)。你能推荐一种最简单的方法来把numpy数组写成dicom图像,而不依赖于读取dicom/复制头文件。我试着用这个例子来做:

^{pr2}$

但是,当我看到图像时,它就崩溃了:

ds.PixelData = Image[:,:,l]
# Alternatively 
# ds.pixel_array = np.ascontiguousarray(Image[:,:,l]), but this isn't a standard field?
ds.save_as(FullPath)

此操作失败,并出现错误: 如果我想这么做

np.ascontiguousarray(Image[:,:,l])

这不是dicom.read_文件作为人类可读的数组。在

谢谢你

注:被要求进行错误回溯。在

ds.PixelData = np.ascontiguousarray(Image[:,:,l]) 
ds.save_as(FullPath)

结果:

Traceback (most recent call last):
  File "/home/m047659/Programs/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-078b166fa765>", line 1, in <module>
    ds.save_as(FullPath)
  File "/home/m047659/Programs/anaconda3/lib/python3.6/site-packages/dicom/dataset.py", line 491, in save_as
    dicom.write_file(filename, self, write_like_original)
  File "/home/m047659/Programs/anaconda3/lib/python3.6/site-packages/dicom/filewriter.py", line 356, in write_file
    write_dataset(fp, dataset)
  File "/home/m047659/Programs/anaconda3/lib/python3.6/site-packages/dicom/filewriter.py", line 200, in write_dataset
    write_data_element(fp, dataset[tag], dataset_encoding)
  File "/home/m047659/Programs/anaconda3/lib/python3.6/contextlib.py", line 99, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/m047659/Programs/anaconda3/lib/python3.6/site-packages/dicom/tagtools.py", line 21, in tag_in_exception
    raise type(e)(err)
ValueError: Invalid tag (7fe0, 0010): ndarray is not C-contiguous

Tags: inpyimagehomeliblinedssite