0

我想将 BrainWeb ( https://brainweb.bic.mni.mcgill.ca/brainweb/anatomic_normal_20.html ) 中的 .mnc 文件转换为 .mha 文件格式以用于 TumorSim ( https://www.nitrc.org/项目/tumorsim/)。

我尝试使用 nibabel 和 mnc2nii 将文件从 .mnc 转换为 .nii,然后将 .nii 文件转换为 .mha 格式。

但是,此过程会导致文件大小急剧增加(从 56.9 MB .mha 到 56.9~227.5 MB .nii,具体取决于输出体素格式)

从那里开始,将 .nii 文件转换为 .mha 格式会保留相同的文件大小。TumorSim 中使用的 .mha 文件大小约为 4.8 MB。

目标:我想要一个将 .mnc 文件转换为 .mha 文件的 1 步解决方案

代码:

import SimpleITK as sitk

inputImageFileName = 'subject04_wm_v.mnc'
outputImageFileName = 'white_matter.mha'

reader = sitk.ImageFileReader()
reader.SetImageIO("MINCImageIO")
reader.SetFileName(inputImageFileName)
image = reader.Execute()

writer = sitk.ImageFileWriter()
writer.SetFileName(outputImageFileName)
writer.Execute(image)

输出:

(py3env) russ@russ-Latitude-E5450:~/Documents/Testing_Space/ITK$ python mncconverter.py 
/tmp/SimpleITK-build/ITK/Modules/ThirdParty/MINC/src/libminc/libsrc2/volume.c:1399 (from MINC): Unable to open file 'subject04_wm_v.mnc'
Traceback (most recent call last):
  File "mncconverter.py", line 9, in <module>
    image = reader.Execute()
  File "/home/russ/Documents/freesurfer/psacnn_brain_segmentation/py3env/lib/python3.6/site-packages/SimpleITK/SimpleITK.py", line 8654, in Execute
    return _SimpleITK.ImageFileReader_Execute(self)
RuntimeError: Exception thrown in SimpleITK ImageFileReader_Execute: /tmp/SimpleITK-build/ITK/Modules/IO/MINC/src/itkMINCImageIO.cxx:322:
itk::ERROR: MINCImageIO(0x2de7600): Could not open file "subject04_wm_v.mnc".
4

2 回答 2

0

看起来您可能有权限或路径问题。SimpleITK 似乎找​​不到该文件。尝试检查权限并输入完整路径名。

这是我为检查 MNC IO 而编写的一个小测试程序:

import SimpleITK as sitk
img = sitk.GaussianSource(sitk.sitkFloat32, [64,64,64])
sitk.WriteImage(img, "test.mnc")
img2 = sitk.ReadImage("test.mnc")
print(img2)
sitk.Show(img2)

对我来说效果很好。

于 2019-10-15T14:10:06.927 回答
0

在尝试自己加载 BrainWeb 图像后,我找到了描述该问题的网页: https ://www.slicer.org/wiki/How_to_read_.mnc_files_using_ITK

问题是 BrainWeb 图像以 MINC 1 格式存储,而 ITK/SimpleITK 读取 MINC 2。

有一个实用程序 mincconvert 可以从 1 转换为 2,这将允许 ITK 读取图像: http ://bic-mni.github.io/man-pages/man/mincconvert.html

另一种选择是以原始格式从 BrainWeb 下载图像,然后创建具有适当尺寸的 MHA 标头。MHA 的标题是文本,所以也不会太难。

于 2019-10-17T17:05:29.943 回答