描述错误
烟酒两用药不适用于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
版本(请填写以下信息):
额外的背景
当我在Windows上运行它时,它仍然报告相同的错误。
似乎featureVector = extractor.execute(imageName, maskName)
不起作用
我将不得不进一步研究,但看来离散化不会转换为整数数据类型(需要使用灰度级作为索引)。 我以为我改变了一段时间,但似乎找不到了,所以也许迷路了。 我将尝试尽快修复此问题(确实是一个简单的修复程序)。 如果要自己尝试,请转到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。