Как назвать все изображение в массиве? - PullRequest
0 голосов
/ 05 ноября 2019

Используя массив или список, как я могу назвать оба изображения в списке? Какой код я должен добавить?

import cv2
a = cv2.imread("D:\\a.jpg")
b = cv2.imread("D:\\b.jpg")
arr = []
arr.append(a)
arr.append(b)

cv2.imshow("test", arr)
cv2.waitKey(0)
cv2.destroyAllWindows()

Я получаю ошибку, запустив этот код.

TypeError: Expected Ptr<cv::UMat> for argument '%s'

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Если ваша цель - показать два изображения в одном окне, вы можете сделать это, используя Numpy:

import cv2
import numpy as np

a = cv2.imread("D:\\a.jpg")
b = cv2.imread("D:\\b.jpg")

v_stack = np.vstack((a, b))
h_stack = np.hstack((a, b))

cv2.imshow('Vertical', v_stack)
cv2.imshow('Horizontal', h_stack)
cv2.waitKey()
0 голосов
/ 05 ноября 2019

Вы должны показывать каждое изображение в отдельном окне

cv2.imshow("window 1", a) 
cv2.imshow("window 2", b)
cv2.waitKey(0)

Если у вас есть список с изображениями, вы можете использовать for -loop

for number, image in enumerate(arr, 1):
    cv2.imshow("window " + str(number), image)

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