Ошибка: не удалось преобразовать строку в число с плавающей точкой (CordZ)
Я пытаюсь извлечь фрагменты клубеньков из изображений CT, основываясь на координатах, указанных в файле CSV. я продолжаю получать это сообщение об ошибке в строке worldcoord: не удалось преобразовать строку в число с плавающей точкой (CordZ). Я не совсем уверен, как это сделать.
У меня есть это до сих пор:
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)
1 ответ
Мне также пришлось указать номер строки для файла CSV. Итак, я сделал:
for cand in cands[1:]
Решение для "только целых чисел, слайсов (:), многоточия (...), numpy.newaxis (None) и целых или логических массивов являются допустимыми индексами"
Изменить,
patch = numpyImage [voxelCoord[0],voxelCoord[1]- voxelWidth/2:voxelCoord[1]+voxelWidth/2,voxelCoord[2]-voxelWidth/2:voxelCoord[2]+voxelWidth/2]
чтобы,
patch = numpyImage [int(voxelCoord[0]),int(voxelCoord[1])- int(voxelWidth/2):int(voxelCoord[1])+int(voxelWidth/2),int(voxelCoord[2])-int(voxelWidth/2):int(voxelCoord[2])+int(voxelWidth/2)]