Pyradiomics: [BUG] extrator de recurso parou de funcionar (matrizes usadas como índices devem ser do tipo inteiro (ou booleano))

Criado em 30 jun. 2020  ·  4Comentários  ·  Fonte: AIM-Harvard/pyradiomics

Descreva o bug
De repente, não consigo mais executar o extrator de recursos (funcionou até algumas semanas atrás). Mensagem de erro obtida:

Traceback (most recent call last):

  File "<ipython-input-58-89ccd738bd53>", line 1, in <module>
    features = extractor.execute(img, mask, label=255)

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\featureextractor.py", line 327, in execute
    featureVector.update(self.computeFeatures(inputImage, inputMask, imageTypeName, **inputKwargs))

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\featureextractor.py", line 514, in computeFeatures
    for (featureName, featureValue) in six.iteritems(featureClass.execute()):

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\base.py", line 185, in execute
    self._calculateSegment()

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\base.py", line 222, in _calculateSegment
    for success, featureName, featureValue in self._calculateFeatures():

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\base.py", line 229, in _calculateFeatures
    self._initCalculation(voxelCoordinates)

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\glcm.py", line 111, in _initCalculation
    self.P_glcm = self._calculateMatrix(voxelCoordinates)

  File "C:\Anaconda3\envs\pp\lib\site-packages\radiomics\glcm.py", line 148, in _calculateMatrix
    P_glcm = numpy.delete(P_glcm, emptyGrayLevels - 1, 1)

  File "<__array_function__ internals>", line 6, in delete

  File "C:\Anaconda3\envs\pp\lib\site-packages\numpy\lib\function_base.py", line 4406, in delete
    keep[obj,] = False

IndexError: arrays used as indices must be of integer (or boolean) type

Configuração PyRadiomics
contexto:
binWidth: 1
padDistance: 0
force2D: verdadeiro

Reproduzir

from radiomics import featureextractor
import SimpleITK as sitk
import six
import numpy as np

data=np.array([[ 0,  2,  1,  4,  4,  5,  6,  8,  8,  9, 10,  8,  8,  7,  5,  5,  3,  1,  0,  1],
       [ 1,  2,  1,  4,  5,  8, 10, 14, 14, 15, 15, 15, 12, 11,  9,  8,  2,  2,  1,  2],
       [ 0,  2,  4,  8, 11, 15, 16, 21, 24, 29, 30, 27, 25, 18, 15, 11,  6,  6,  3,  1],
       [ 1,  4,  7, 11, 16, 24, 33, 43, 46, 50, 50, 46, 42, 34, 24, 17, 11,  8,  3,  1],
       [ 4,  7, 13, 20, 29, 41, 53, 61, 65, 67, 68, 64, 55, 48, 34, 24, 17, 10,  5,  3],
       [ 4, 10, 18, 30, 42, 57, 70, 72, 75, 75, 78, 72, 66, 55, 48, 33, 21, 14,  7,  3],
       [ 7, 16, 26, 43, 55, 62, 74, 76, 79, 84, 78, 76, 70, 66, 55, 40, 28, 16, 10,  5],
       [ 7, 19, 34, 45, 60, 70, 77, 75, 85, 81, 83, 81, 77, 68, 58, 46, 28, 18, 10,  5],
       [12, 20, 35, 51, 65, 69, 74, 78, 77, 85, 86, 77, 77, 72, 59, 48, 34, 21, 11,  6],
       [11, 22, 33, 46, 59, 71, 76, 80, 85, 87, 86, 84, 76, 76, 68, 54, 36, 23, 11,  6],
       [12, 21, 31, 47, 52, 64, 79, 77, 86, 88, 89, 83, 78, 72, 68, 50, 37, 19, 10,  7],
       [10, 18, 24, 39, 49, 59, 71, 81, 86, 89, 87, 86, 76, 67, 56, 46, 30, 15,  9,  4],
       [ 6, 11, 20, 30, 45, 52, 65, 72, 78, 84, 82, 80, 69, 57, 46, 35, 23, 13,  6,  4],
       [ 5,  8, 12, 18, 29, 45, 53, 60, 65, 71, 72, 67, 56, 48, 35, 25, 15,  9,  6,  3],
       [ 5,  7,  9, 13, 19, 28, 37, 44, 52, 52, 56, 50, 43, 31, 23, 15, 10,  6,  4,  2],
       [ 1,  3,  6,  8, 13, 14, 22, 27, 31, 33, 34, 30, 23, 18, 13,  8,  5,  4,  1,  2],
       [ 2,  1,  4,  5,  7,  9, 10, 15, 16, 17, 16, 15, 12, 10,  6,  6,  3,  3,  2,  0],
       [ 0,  2,  1,  3,  4,  4,  7,  6,  8,  7,  7,  7,  5,  5,  3,  4,  1,  1,  0,  1]], dtype=np.uint8)

data_mask=np.array([[255, 255, 255, 255, 255, 255,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255, 255, 255, 255, 255],
       [255, 255, 255, 255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255, 255, 255],
       [255, 255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255],
       [255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255],
       [255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255],
       [255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255],
       [255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255],
       [255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255],
       [255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255],
       [255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255, 255],
       [255, 255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255, 255, 255],
       [255, 255, 255, 255, 255,   0,   0,   0,   0,   0,   0,   0,   0,   0, 255, 255, 255, 255, 255, 255],
       [255, 255, 255, 255, 255, 255, 255, 255,   0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]], dtype=np.uint8)

img = sitk.GetImageFromArray(data)
mask = sitk.GetImageFromArray(data_mask)

params = "params.yml"

extractor = featureextractor.RadiomicsFeatureExtractor(params)
features = extractor.execute(img, mask, label=255)

Comportamento esperado
Uma descrição clara e concisa do que você esperava que acontecesse.

Versão (preencha as seguintes informações):

  • SO: Windows 10
  • Versão Python: 3.7.7
  • PyRadiomics versão 3.0
bug

Comentários muito úteis

Descobri que 1.19.0 numpy está quebrando, em 1.18.5 ainda funciona

Todos 4 comentários

Descobri que 1.19.0 numpy está quebrando, em 1.18.5 ainda funciona

Duplicar para # 592

Duplicar para # 592

Esqueci de mencionar que tentei a correção mencionada em # 592, mas sem sucesso

Esqueci de mencionar que tentei a correção mencionada em # 592, mas sem sucesso

Atualmente estou trabalhando na expansão da correção. No entanto, como o mesmo problema é tratado em # 592, é melhor reabrir esse problema do que iniciar um novo problema.

Esta página foi útil?
0 / 5 - 0 avaliações