2016-05-11 6 views
0

Wenn ich mein Skript ausführen bekomme ich diesen Fehler:Python: Attribute

File "test_cm.py", line 34, in

labels = labels_img.get_data() AttributeError: 'tuple' object has no attribute 'get_data'

from dipy.tracking.eudx import EuDX 
from dipy.reconst import peaks, shm 
from dipy.tracking import utils 
from dipy.data import read_stanford_labels 
from dipy.io.gradients import read_bvals_bvecs 

import numpy as np 
import matplotlib.pyplot as plt 
import nibabel as nib 

source="prova11/" 
path=source 

print('loading data') 
bvals,bvecs=read_bvals_bvecs(source+"bvals",source+"bvecs") 
bvals[bvals < 10] = 0 
img = nib.load(source+"segment-TO-b0.nii") 
data = img.get_data() 
affine=img.affine 
labels_img = read_stanford_labels() 
labels = labels_img.get_data() 

Antwort

0

read_stanford_labels() ein Tupel zurückgibt, und Tupel haben keine get_data() Methode, weshalb der Fehler AttributeError: 'tuple' object has no attribute 'get_data' sagt.

Sie sollten über Ihre read_stanford_labels Funktion gehen und sehen, warum es ein Tupel zurückgibt, was nicht das ist, was Sie erwartet haben.

Edit: Indem wir über die documentation/example Ihr Code sollte
hardi_img, gtab, labels_img = read_stanford_labels() statt
labels_img = read_stanford_labels() sein.

Alternativ können, wenn Sie nicht über die ersten 2 Werte benötigen, können Sie
labels_img = read_stanford_labels()[-1] oder
*_, labels_img = read_stanford_labels() verwenden.

Verwandte Themen