如何使用SimpleITK“ LabelOverlapMeasuresImageFilter”使用NiftiImages在Python上提取度量值

问题描述 投票:1回答:1

我需要从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!

我在这里想念什么?

python image-processing multidimensional-array itk simpleitk
1个回答
0
投票

我会检查image1.GetOrigin()== image2.GetOrigin()和其他任何图像功能是否正确。另一个选项是将image1重新采样为图像2。

© www.soinside.com 2019 - 2024. All rights reserved.