Python:AttributeError

时间:2016-05-11 10:13:37

标签: python

当我运行脚本时,我收到此错误:

  

文件“test_cm.py”,第34行,

     

labels = labels_img.get_data()AttributeError:'tuple'对象没有属性'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()

1 个答案:

答案 0 :(得分:0)

read_stanford_labels()会返回一个元组,而元组则没有get_data()方法,这就是错误AttributeError: 'tuple' object has no attribute 'get_data'的原因。

你应该检查一下read_stanford_labels函数,看看为什么它会返回一个元组,这不是你所期望的。

修改:通过documentation/example您的代码应该是 hardi_img, gtab, labels_img = read_stanford_labels()而非 labels_img = read_stanford_labels()

或者,如果您不需要前2个值,则可以使用
labels_img = read_stanford_labels()[-1]
*_, labels_img = read_stanford_labels()