【发布时间】:2023-03-30 18:46:01
【问题描述】:
我需要从 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!
我在这里错过了什么?
【问题讨论】:
-
我运行了你的脚本,对我来说效果很好。您使用的是哪个版本的 SimpleITK?
-
我在 Python 2.7 上运行 v1.2.4 的 SimpleITK
-
我会检查 image1.GetOrigin() == image2.GetOrigin() 和任何其他图像功能是否正确。另一种选择是将 image1 重新采样到图像 2
标签: python image-processing multidimensional-array itk simpleitk