如何使用imshow在多个窗口中显示多个图像
How can I use imshow to display multiple images in multiple windows?
为了在屏幕上显示两个图像,我想做如下操作:
imshow("1", img1);
imshow('2', 'img2');
有可能做到吗?
是的,这是可能的。函数void imshow(const string& winname, InputArray mat)
在指定窗口中显示图像,其中-
- winname–窗口的名称
- image–要显示的图像
该窗口由其名称标识。因此,在两个不同的窗口中显示两个图像(img1,img2);使用不同名称的imshow
,如:-
imshow("1",img1);
imshow("2",img2);
我在Python中进行了这项工作,但需要注意:
cv2.imshow("image 1", my_image_1)
cv2.imshow("image 2", my_image_2)
cv2.waitKey(0)
需要注意的是,两个窗口在屏幕上的位置完全相同,因此只有看起来像打开的一个窗口(Ubuntu 14.4)。我可以用鼠标将其中一个拖动到另一个的旁边。
我现在正在寻找如何自动将两者并排放置,这就是我发现这个问题的原因。。
下面是如何在Python中做到这一点:
cv2.namedWindow("Channels")
cv2.imshow("Channels", image_channels)
cv2.namedWindow("Main")
cv2.imshow("Main", image_main)
您只需创建一个命名窗口,并将其名称作为字符串传递给imshow。
我遇到了必须创建任意数量的openCV窗口的问题。我把它们存储在一个列表中,不能简单地循环显示它们:
# images is a list of openCV image object
for img in images:
cv2.imshow('image',i)
这不起作用,因为图像需要不同的标签,因此这个循环只显示列表中的最后一个项目。
这可以通过使用迭代器和python字符串格式化程序来解决:
for i, img in enumerator(images):
cv2.imshow("Image number {}".format(i), img)
因此,现在将显示所有图像,因为它们已被分配了不同的标签。
如果图像在numpy数组中,可以使用numpy.hstack函数将两个数组合并为一个数组,并使用cv2.imshow()来显示数组。
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.hstack.html
import cv2
import numpy as np
towImage = np.vstack((row_0, row_1))
cv2.imwrite('img', twoImage)
我创建了一个模块,使模块更容易显示
https://github.com/saman202/View_image_video_matrix
smp = ShowMatrixPic(width=180, height=240, row=3, column=4, atuoTile=True)
imgListOne = ['pic/Scott Glenn.jpg','pic/Brad Pitt.jpg',
'pic/Scott Glenn.jpg','pic/Brad Pitt.jpg',
'pic/Scott Glenn.jpg','pic/Brad Pitt.jpg',
'pic/Scott Glenn.jpg','pic/Brad Pitt.jpg',
'pic/Scott Glenn.jpg','pic/Brad Pitt.jpg'
]
numpy_horizontal = smp.showPic(imgListOne)
cv2.imshow('img', numpy_horizontal)
cv2.waitKey(0)
https://i.stack.imgur.com/5E3b5.png
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 我在 OpenGL 中显示图像时遇到问题
- 无法在 Opencv 中显示图像导致内存位置
- 从C++调用网络摄像头并在 Python 中显示图像
- C++列出屏幕以在第二台显示器中显示图像
- 如何用QT显示图像
- 如何在 QGraphicsView 中显示图像
- C++/openCV - 为什么显示图像会产生 Linux 分割错误?(打开CV错误?
- 在C 中显示图像及其元数据
- C++显示图像并将其保持到下一张图像的最佳方法
- 如何使用SDL_surface在用户定义的矩形上显示图像?
- 如何使用QVector的QPixmap显示图像?
- 如何在任何使用 Opencv 的计算机上显示图像
- 使用 qt 和 opengl、定时精度和垂直同步问题、c++ 显示图像
- QLabel像视频一样显示图像
- 使用 c++ 显示图像
- Qt表查看单元格中的显示图像并在单击时获取路径
- 在Visual C 控制台应用程序中显示图像
- 如何使用Createbsection显示图像