我试图导入图像堆叠成一个numpy数组。我有类似的东西,但并没有给我我所需要的东西,似乎无法在网上找到答案。
import easygui as eg
import cv2
openfiles1 = eg.fileopenbox("Select the files to stack", multiple=True)
stack = np.array([])
for item in openfiles1:
pic = cv2.imread(item)
stack =np.dstack(pic)
根据np.dstack
文档,dstack
将numpy数组的元组作为参数。现在,对于每个循环,您将堆栈变量重置为具有长度为1的元组的堆栈(您当前在循环中使用的一个映像)。相反,你可能想要这样的东西:
import easygui as eg
import cv2
openfiles1 = eg.fileopenbox("Select the files to stack", multiple=True)
pics = []
for item in openfiles1:
pics.append(cv2.imread(item))
stack = np.dstack(tuple(pics))
这将创建要加入的数组列表(稍后将转换为不可变元组)。