本文主要是介绍Brats挑战赛 数据上传失败 Inputs do not occupy the same physical space!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个困扰我将近半年的问题,之前一直用的本地训练集测试,后来想上传到平台去测,感觉可信度高一点,但是每次上传总是显示这个问题:
itk::ERROR: MaskImageFilter(0x379d560): Inputs do not occupy the same physical space!
InputImage Origin: [0.0000000e+00, 0.0000000e+00, 0.0000000e+00], InputImage_1 Origin: [-0.0000000e+00, -2.3900000e+02, 0.0000000e+00]Tolerance: 1.0000000e-06
一直百思不得解,后来一个学姐一眼看出来了问题,要将坐标系对应回去。
具体解决代码如下:
大概就是,先获取官方给的文件的坐标和位置空间
origin_img=sitk.ReadImage("BraTS20_Training_002_seg.nii.gz") #读取原始文件origin=origin_img.GetOrigin() #这三句是获取的原始图像文件的位置和方向吧。
spacing=origin_img.GetSpacing()
direction=origin_img.GetDirection()
然后将我自己预测得到的分割结果进行一个处理,让我的结果和官方的结果回到相同的坐标系,之前一直以为是自己的sitk版本不对应导致的,后来才知道要这样做。
w=sitk.ReadImage("BraTS20_Training_002.nii.gz") # 读取自己预测得到的nii.gz文件w.SetOrigin(origin) #将自己的文件处理成和官方一致的位置坐标系
w.SetSpacing(spacing)
w.SetDirection(direction)
sitk.WriteImage(w, "位置路径") #处理完之后保存到相应的合适位置。
这一过程应该很好理解。就是对齐操作吧。
这篇关于Brats挑战赛 数据上传失败 Inputs do not occupy the same physical space!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!