我有2个文件夹,每个文件夹包含10张图像,我已将它们加载到Numpy数组中并进行了串联(原始的单独np阵列形状:10 128 128 3
,串联的np阵列形状:20 128 128 3
)。现在我想循环播放20次,然后cv2.imshow每个图像,例如第一个'1 128 128 3',然后是'2 128 128 3',依此类推。但是如何将这样的形状输入cv2.imshow?
我的代码:
import numpy as np
import cv2
import glob
first_images = np.array([cv2.imread(file) for file in glob.glob("/filepath/*.png")])
second_images = np.array([cv2.imread(file) for file in glob.glob("/filepath/*.png")])
num_of_first =first_images.shape[0]
num_of_second = second_images.shape[0]
image_array = np.concatenate((first_images,second_images),axis=0)
for image in range(image_array.shape[0]):
也许我可以做类似的事情 single_image = image_array(image ,,,) 然后将其重塑为128x128x3?但是我不确定该怎么做。
编辑:
尝试cv2.imshow(image_array[image, :,:,:])
以获得
TypeError:找不到必需的参数“ mat”(位置2)
我改用cv2.imwrite并能够得到我想要的。问题仍然是如何使cv2.imshow正常工作。
答案 0 :(得分:0)
我认为您需要将numpy与“ shape”结合使用以获取数组大小,而不是“ len”。