如何在列表或数组的每个单元格中插入一些矩阵(如图像),然后将每个矩阵用作数组(如Matlab中的单元格数组)? 我尝试这样做,如以下代码所示:
a = []
for dcmfile in dcmfiles:
dcm_image = pydicom.dcmread(os.path.join(root, dcmfile))
a.append([dcm_image.pixel_array])
volume_image = np.concatenate((a, ?), 1) # problem is in this line because two variables are needed to the "concatenate".
َ此外,我已经检查了以下代码,但出现错误:
volume_image = {}
for i, dcmfile in dcmfiles:
dcm_image = pydicom.dcmread(os.path.join(root, dcmfile))
volume_image[i] = dcm_image.pixel_array
ValueError:太多值无法解包(预期2)
答案 0 :(得分:2)
该错误表明,在某些时候,python需要2个对象(值),但仅发送一个。罪魁祸首在:
for i, dcmfile in dcmfiles:
这里您要遍历dcmfile
的元素,因此for .. in
语句将一次返回一个用于操作的元素。但是,您正在寻找两个元素,即i
和dcmfile
,因此会出现错误。
您应该使用:
for i, dcmfile in enumerate(dcmfiles):
如果dcmfiles
是可迭代的或位于以下位置:
for i, dcmfile in dcmfiles.iteritems(): # for python 2.x
for i, dcmfile in dcmfiles.items(): # for python 3.x
如果dcmfiles
是字典