我正在尝试制作一个有三个不同大小的imshow窗口的项目,有没有办法让这三个窗口变成窗格或堆叠,并在另一个窗口中显示它们?目前,它们是这样显示的

如何创建一个包含所有这些窗口并且只有主窗口有关闭按钮而不是所有窗口的窗口。
发布于 2021-03-28 15:02:28
使用
要垂直堆叠它们,请执行以下操作:
img = np.concatenate((img1, img2), axis=0)要水平堆叠它们,请执行以下操作:
img = np.concatenate((img1, img2), axis=1)然后使用cv2.imshow显示它们
发布于 2021-04-06 08:47:14
您可以读取每个图像,并将除第一个图像img0之外的所有图像存储到列表imgs中。遍历imgs列表中的每个图像,比较img0的宽度和迭代的图像。这样我们就可以定义一个pad,并用图像更新img0:
假设我们有以下三个图像:
one.png

two.png

three.png

代码:
import cv2
import numpy as np
img1 = cv2.imread("one.png")
img2 = cv2.imread("two.png")
img3 = cv2.imread("three.png")
imgs = [img1, img2, img3]
result = imgs[0]
for img in imgs[1:]:
w = img.shape[1] - result.shape[1]
pad = [(0, 0), (0, abs(w)), (0, 0)]
if w > 0:
result = np.r_[np.pad(result, pad), img]
else:
result = np.r_[result, np.pad(img, pad)]
cv2.imshow("Image", result)
cv2.waitKey(0)输出:

https://stackoverflow.com/questions/66838885
复制相似问题