如何cv2.imshow存储在Numpy数组中的图像?

时间:2019-02-23 17:28:47

标签: python arrays image numpy opencv

我有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正常工作。

1 个答案:

答案 0 :(得分:0)

我认为您需要将numpy与“ shape”结合使用以获取数组大小,而不是“ len”。