我想在Python中处理*.mha文件。但是它需要依赖于ITK包的MedPy包。我目前在安装ITK包时遇到问题。我在想是否有一种方法可以将*.mha文件转换为*.nii文件(使用其他方法,可能是C++),因为这样我就可以使用Python读取*.nii文件。任何相关的指针都是受欢迎的。
发布于 2017-07-16 15:04:36
您可以在Python中安装SimpleITK并使用它进行转换。例如,
import SimpleITK as sitk
root_path = '/path/to/image'
nii_path = root_path + '/data.nii'
mha_path = root_path + '/data.mha'
img = sitk.ReadImage(nii_path)
sitk.WriteImage(img, mha_path)发布于 2015-07-25 05:41:47
解决这个问题的另一种方法是安装sci-kit image和simpleitk。
这不需要从源构建或包装ITK,并允许读取MHA文件和写入NIFTI格式。
pip install scikit-image
pip install SimpleITK or easy_install -U SimpleITK安装了这些程序后,如果您运行以下代码,则应该可以正常工作
import skimage.io as io
path = 'C:/test.mha' #path to your MHA file
outpath = 'C:/test.nii'
img = io.imread(path,plugin='simpleitk')
io.imsave('outpath',img,plugin='simpleitk')发布于 2018-08-07 13:42:05
为了得到这个问题的答案,我花了24小时,但最后,我可以说,从.mha到.nii文件1的转换是如此简单。首先,你必须在conda中安装SimpleITK包,或者你正在使用的环境。
在此之后,只需按照以下步骤转换任何文件。
import SimpleITK as sitk
import matplotlib.pyplot as plt
import numpy as np
import os
OUTPUT_DIR = 'Output'
# Image = sitk.ReadImage('lena1.png')
Image = sitk.ReadImage('Flair.mha')
print(Image.GetPixelIDTypeAsString())
sitk.WriteImage(Image, os.path.join(OUTPUT_DIR, 'Flair.nii'))
# sitk.WriteImage(Image, os.path.join(OUTPUT_DIR, 'SimpleITK.bmp'))
# plt.imshow(sitk.GetArrayViewFromImage(Image))
# plt.axis('off')
# plt.show()通过遵循这些步骤,我认为你们将获得所需的输出。
https://stackoverflow.com/questions/29738822
复制相似问题