我有这样简单代码
for item in images:
img_org = nii_reader(item)
img = sitk.GetArrayFromImage(img_org)
print(img.shape)
输出是这样的
(9, 40, 43)
(9, 46, 50)
(8, 40, 38)
(6, 46, 45)
(4, 47, 44)
(8, 57, 54)
(7, 45, 44)
(8, 53, 49)
(8, 45, 48)
我希望所有的img到一个数组。我已经尝试了这样的代码
train = np.array([])
for item in images:
img_org = nii_reader(item)
img = sitk.GetArrayFromImage(img_org)
train = np.append(train, img)
print(train.shape)
但长度是
(1728287,)
我怎样才能得到这样的长度?
(9, 9, 57, 54)
2条答案
按热度按时间nzrxty8p1#
你可能不能用
np.stack
做到这一点。因为它要求每个数组具有与manual相同的维度。在你的情况下,它要求每个img
具有相同的高度,宽度和长度。我认为你最好的运气是让你的train
成为一个列表,并将你的img
附加到它。在我的内存中,将对象追加到列表实际上比连接numpy数组更快。
ryhaxcpt2#
我相信你可以使用np.stack来实现这一点,如果你将你的数组“train”添加到np.stack函数中,并且axis=0,来堆叠所有附加在train数组中的图像。