<p>pyadiomics和extractor.execute不适用于Indexerror</p>

创建于 2020-06-22  ·  5评论  ·  资料来源: AIM-Harvard/pyradiomics

描述错误
烟酒两用药不适用于Indexerror。

PyRadiomics配置
PyRadiomincs软件是通过在Mac终端中运行python -m pip install pyradiomics安装的。

在Mac终端应用中输入:
pyradiomics brain1_image.nrrd brain1_label.nrrd
然后,它因Indexerror而停止。
PyRadiomics日志文件

追溯(最近一次通话):
_extractFeatures中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/scripts/segment.py”,第70行

feature_vector.update(extractor.execute(imageFilepath, maskFilepath, label, label_channel))

执行中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/featureextractor.py”,第327行

featureVector.update(self.computeFeatures(inputImage, inputMask, imageTypeName, **inputKwargs))

在computeFeatures中,文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/featureextractor.py”,第514行

for (featureName, featureValue) in six.iteritems(featureClass.execute()):

执行中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py”,行185

self._calculateSegment()

_calculateSegment中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py”,第222行

for success, featureName, featureValue in self._calculateFeatures():

_calculateFeatures中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/base.py”,第229行

self._initCalculation(voxelCoordinates)

_initCalculation中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/glcm.py”,第111行

self.P_glcm = self._calculateMatrix(voxelCoordinates)

_calculateMatrix中的文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/radiomics/glcm.py”,第148行

P_glcm = numpy.delete(P_glcm, emptyGrayLevels - 1, 1)

删除文件“ <__ array_function__ i =“ 51”>“,第6行

删除文件“ /Users/adm/test7/venv/lib/python3.7/site-packages/numpy/lib/function_base.py”,行4406

keep[obj,] = False

IndexError:用作索引的数组必须为整数(或布尔值)类型

Case-1_Image:/Users/adm/test7/pyradiomics-master/data/brain1_image.nrrd

Case-1_Mask:/Users/adm/test7/pyradiomics-master/data/brain1_label.nrrd

版本(请填写以下信息):

  • 作业系统:Mac OS 10.15.6
  • python版本:3.7.4
  • PyRadiomics版本v3.0

额外的背景
当我在Windows上运行它时,它仍然报告相同的错误。
似乎featureVector = extractor.execute(imageName, maskName)不起作用

所有5条评论

我将不得不进一步研究,但看来离散化不会转换为整数数据类型(需要使用灰度级作为索引)。 我以为我改变了一段时间,但似乎找不到了,所以也许迷路了。 我将尝试尽快修复此问题(确实是一个简单的修复程序)。 如果要自己尝试,请转到imageoperations.binImage并将158行( return discretizedParameterMatrix, binEdges )更改为( return discretizedParameterMatrix.astype('int'), binEdges

非常感谢! 现在可以了〜

不幸的是,您提供的解决方案并不总是能解决上述问题。 如果离散化图像中存在所有可能的灰度级,则imageoperations脚本中的discretizedParameterMatrix变量以及glcm脚本中的emptyGrayLevels变量将成为一个空列表。 提到的错误也同样引起了:仅仅改变类型不能解决问题。

一个解决方案可能是在glcm脚本中,在P_glcm = numpy.delete(P_glcm, emptyGrayLevels - 1, 1)行之前,只需插入条件if list(emptyGrayLevels): 。 请注意,在所有其他基于灰度矩阵的功能(例如glrlm,gldm)中也可能发生此问题,因此需要在所有这些脚本中实施此修复程序。

我将编写第二个更新以添加额外的支票

地址为#602。

此页面是否有帮助?
0 / 5 - 0 等级