我想将.mnc文件从BrainWeb (https://brainweb.bic.mni.mcgill.ca/brainweb/anatomic_normal_20.html)转换为.mha文件格式,以便在TumorSim (https://www.nitrc.org/projects/tumorsim/)中使用。
我尝试使用nibabel和mnc2nii将文件从.mnc转换为.nii,然后将.nii文件转换为.mha格式。
然而,这一过程会导致文件大小急剧增加(根据输出体素格式,从56.9MB .mha增加到56.9~227.5 MB .nii )
在此基础上,将.nii文件转换为.mha格式将保持相同的文件大小。TumorSim中使用的.mha文件大小约为4.8MB。
目标:我想要一个1步的解决方案,将.mnc文件转换为.mha文件
代码:
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".发布于 2019-10-18 01:05:30
在我自己尝试加载一个BrainWeb图像后,我发现这个网页描述了这个问题:https://www.slicer.org/wiki/How_to_read_.mnc_files_using_ITK
问题是BrainWeb图像是以Minc1格式存储的,而ITK/SimpleITK读取Minc2格式。
有一个实用程序mincconvert可以将1转换为2,这将允许ITK读取图像:http://bic-mni.github.io/man-pages/man/mincconvert.html
另一种选择是从BrainWeb下载原始格式的图像,然后创建具有适当尺寸的MHA头部。MHA的头文件是文本,所以这也不会太难。
发布于 2019-10-15 22:10:07
看起来您可能有权限或路径问题。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)它对我来说工作得很好。
https://stackoverflow.com/questions/58370818
复制相似问题