Как отображать изображения в определенном порядке, используя OpenCV в Python? - PullRequest
0 голосов
/ 30 марта 2019

Я пишу программу, которая берет строку от пользователя и отображает изображения языка жестов каждого символа в этой строке. Этот код отображает изображения, которые накладываются друг на друга. Можно ли отобразить эти изображения в том порядке, в котором они были введены? Это вывод, который я сейчас получаю. Вот как я хочу, чтобы вывод выглядел

import cv2

print("Say something !!!")
say = input()
i=1

for x in say :
    if x == " ":
        continue
    img = cv2.imread("TrainData\\" + x + "_1.jpg")
    cv2.imshow(x + str(i), img)
    i= i+1
cv2.waitKey(0)

Я хочу отображать изображения слева направо в соответствии с вводом.

1 Ответ

0 голосов
/ 01 апреля 2019

Вместо того, чтобы пытаться расположить окна, вы можете объединить изображения рядом и отобразить их в одном окне:

#!/usr/local/bin/python3
import numpy as np
import cv2

# Load the 4 letters we need
h = cv2.imread('h.png',0)
e = cv2.imread('e.png',0)
l = cv2.imread('l.png',0)
o = cv2.imread('o.png',0)

# Append images side-by-side
result = np.concatenate((h,e,l,l,o),axis=1)

# Save to disk, or display as a single, wide image
cv2.imwrite('result.png',result)

enter image description here


Конечно, вы можете сделать прокладку, если хотите:

#!/usr/local/bin/python3
import numpy as np
import cv2

# Load the 4 letters we need
h = cv2.imread('h.png',0)
e = cv2.imread('e.png',0)
l = cv2.imread('l.png',0)
o = cv2.imread('o.png',0)

shim = np.ones((200,10),dtype=np.uint8)*255

# Append images side-by-side
result = np.concatenate((h,shim,e,shim,l,shim,l,shim,o),axis=1)
cv2.imwrite('result.png',result)

enter image description here

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