首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dicom2nifti无法正常工作的转换

使用dicom2nifti无法正常工作的转换
EN

Stack Overflow用户
提问于 2022-02-09 00:16:08
回答 1查看 895关注 0票数 1

我有一系列的dicom文件(.dcm)给我想要转换成nii.gz文件的每个病人,但是在下面的转换中没有发生任何事情(甚至错误信息).

代码语言:javascript
复制
import dicom2nifti
dicom2nifti.settings.set_gdcmconv_path('C:/Program Files/GDCM 3.0/bin/gdcmconv.exe')
dicom2nifti.convert_directory('M0_1', 'M0_1.nii.gz')

此错误发生在尝试其他方法时..。

代码语言:javascript
复制
import dicom2nifti
dicom2nifti.settings.set_gdcmconv_path('C:/Program Files/GDCM 3.0/bin/gdcmconv.exe')
dicom2nifti.dicom_series_to_nifti('M0_1', 'M0_1.nii.gz')

错误日志:

代码语言:javascript
复制
Traceback (most recent call last):
  File ".\test.py", line 5, in <module>
    dicom2nifti.dicom_series_to_nifti('M0_1', 'M0_1.nii.gz')
  File "D:\Anaconda3\envs\pydicom\lib\site-packages\dicom2nifti\convert_dicom.py", line 78, in dicom_series_to_nifti
    return dicom_array_to_nifti(dicom_input, output_file, reorient_nifti)
  File "D:\Anaconda3\envs\pydicom\lib\site-packages\dicom2nifti\convert_dicom.py", line 112, in dicom_array_to_nifti
    if not are_imaging_dicoms(dicom_list):
  File "D:\Anaconda3\envs\pydicom\lib\site-packages\dicom2nifti\convert_dicom.py", line 151, in are_imaging_dicoms
    if common.is_philips(dicom_input):
  File "D:\Anaconda3\envs\pydicom\lib\site-packages\dicom2nifti\common.py", line 102, in is_philips
    header = dicom_input[0]
IndexError: list index out of range

档案结构:

代码语言:javascript
复制
M0_1
   |----IM-0001-0001.dcm
   |----IM-0001-0002.dcm
   ........
   |----IM-0001-000299.dcm
   |----IM-0001-000300.dcm

环境: windows10,python: 3.6,dicom2nifti2.3.0

我哪里做错了?

或者还有其他方法来转化它呢?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-11 01:44:12

我没有使用dicom2nifti,但是您可以使用SimpleITK将DICOM转换为Nifti。

下面是应该完成这项工作的代码:

代码语言:javascript
复制
import SimpleITK as sitk

reader = sitk.ImageSeriesReader()
dicom_names = reader.GetGDCMSeriesFileNames('M0_1')
reader.SetFileNames(dicom_names)
image = reader.Execute()

# Added a call to PermuteAxes to change the axes of the data
image = sitk.PermuteAxes(image, [2, 1, 0])

sitk.WriteImage(image, 'M0_1.nii.gz')

您可以在这里了解更多关于SimpleITK的信息:https://simpleitk.readthedocs.io/

更新:我向SimpleITK的PermuteAxes添加了一个调用,将轴顺序从X.更改为Z。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71042522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档