Как cv2.imshow изображения хранятся в массиве Numpy? - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть 2 папки по 10 изображений в каждой, я загрузил их в массивы Numpy и объединил их (исходная индивидуальная форма массива np: 10 128 128 3, конкатенированная форма массива np: 20 128 128 3).Теперь я хочу просмотреть все 20 раз и cv2.im показать каждое изображение, например, 1-й «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 ,,,), а затем изменить формуэто до 128х128х3?Но я не уверен, как это сделать.

РЕДАКТИРОВАТЬ:

Попытка cv2.imshow(image_array[image, :,:,:]), чтобы получить

TypeError: Обязательный аргумент 'mat' (поз. 2) не найдено

Вместо этого я использовал cv2.imwrite и смог получить то, что хотел.Остается вопрос, как заставить работать cv2.imshow.

1 Ответ

0 голосов
/ 23 февраля 2019

Я думаю, вам нужно использовать "shape" с numpy, чтобы получить размер массива вместо "len".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...