2017-08-08 2 views
0

J'essaie d'extraire des patches de nodules d'images CT en fonction des coordonnées données dans un fichier CSV. Je continue d'obtenir cette erreur msg à la ligne worldcoord: impossible de convertir la chaîne en float (CordZ). Je ne suis pas sûr de savoir comment faire cela.erreur: impossible de convertir la chaîne en float (CordZ)

Je cette jusqu'à présent:

def readCSV(filename): 

    def readCSV(filename): lines = [] 
    with open(filename, 'r') as f: 
     csvreader = csv.reader(f) 
     for line in csvreader: 
      lines.append(line) 
    return lines 

    cands = readCSV(cand_path) 

    for cand in cands: 
     worldCoord = np.asarray([float(cand[3]),float(cand[2]),float(cand[1])]) 
     voxelCoord = worldToVoxelCoord(worldCoord, numpyOrigin, numpySpacing) 
     voxelWidth = 65 
     patch = numpyImage[voxelCoord[0],voxelCoord[1]-voxelWidth/2:voxelCoord[1]+voxelWidth/2,voxelCoord[2]-voxelWidth/2:voxelCoord[2]+voxelWidth/2] 
     patch = normalizePlanes(patch) 
     print ('data') 
     print (worldCoord) 
     print (voxelCoord) 
+0

Pourriez-vous fournir des exemples de données que vous essayez de lire? Êtes-vous sûr que le fichier ne contient pas d'en-tête que vous avez lu comme une donnée normale au lieu de sauter? – trivelt

+0

Salut @jboockmann, j'ai résolu cette erreur mais je reçois une nouvelle erreur sur la ligne de patch: seulement des entiers, des tranches (':'), des ellipses ('...'), numpy.newaxis ('None') et des entiers ou Les tableaux booléens sont des indices valides –

+0

Ensuite, vous devriez ouvrir une nouvelle question et fermer celle-ci. –

Répondre

0

J'ai eu en outre de préciser le numéro de ligne du fichier CSV. Donc Ii a fait:

for cand in cands[1:]