我需要从2个标注的3d图像中提取一组度量标准,这些度量具有相同的尺寸,数据类型一切都相同,除了一个是我的银标准,另一个是管道的结果。
我的代码是:
reader = sitk.ImageFileReader()
reader.SetImageIO("NiftiImageIO")
reader.SetFileName(file1)
image1 = reader.Execute()
reader.SetFileName(file2)
image2 = reader.Execute()
labelstats = sitk.LabelOverlapMeasuresImageFilter()
labelstats.Execute(image1,image2)
array = [labelstats.GetJaccardCoefficient(),
labelstats.GetMeanOverlap(),
labelstats.GetVolumeSimilarity(),
labelstats.GetUnionOverlap(),
labelstats.GetDiceCoefficient(),
labelstats.GetFalseNegativeError(),
labelstats.GetFalsePositiveError()]
print array
我收到此错误:
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-14-7560ca50e47b> in <module>()
7
8 labelstats = sitk.LabelOverlapMeasuresImageFilter()
----> 9 labelstats.Execute(image1,image2)
10
11 array = [labelstats.GetJaccardCoefficient(),
/home/user/.local/lib/python2.7/site-packages/SimpleITK/SimpleITK.pyc in Execute(self, image1, image2)
42766
42767 """
> 42768 return _SimpleITK.LabelOverlapMeasuresImageFilter_Execute(self, image1, image2)
42769
42770 LabelOverlapMeasuresImageFilter_swigregister = _SimpleITK.LabelOverlapMeasuresImageFilter_swigregister
RuntimeError: Exception thrown in SimpleITK LabelOverlapMeasuresImageFilter_Execute: /tmp/SimpleITK-build/SimpleITK-build/Code/BasicFilters/src/sitkLabelOverlapMeasuresImageFilter.cxx:104:
sitk::ERROR: Image2 for LabelOverlapMeasuresImageFilter doesn't match type or dimension!
我在这里想念什么?
我会检查image1.GetOrigin()== image2.GetOrigin()和其他任何图像功能是否正确。另一个选项是将image1重新采样为图像2。