当我运行脚本时,我收到此错误:
文件“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()
答案 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()
。