首页 > 解决方案 > 如何在 Python 中使用 OpenCV 以特定顺序显示图像?

问题描述

我正在编写一个程序,它从用户那里获取一个字符串并显示该字符串中每个字符的手语图像。此代码显示相互重叠的图像。有没有办法可以按照输入的顺序显示这些图像?这是我目前得到的输出。 这就是我希望输出的样子

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)

我想根据输入从左到右显示图像。

标签: pythonimageopencvimage-processing

解决方案


您可以并排连接图像并将它们显示在单个窗口中,而不是尝试定位窗口:

#!/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)

在此处输入图像描述


当然,如果你愿意,你可以制作一个垫片:

#!/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)

在此处输入图像描述


推荐阅读