Python OpenCV 可以通过cv2.imshow()函数展示一幅图像。但如果需要在一个窗口中显示多幅图像,就需要在窗口中创建多个窗格,每个窗格中显示一幅图像。
实现Python OpenCV一个窗口中显示多幅图像攻略如下:
1.创建窗口:使用cv2.namedWindow()函数创建一个空的窗口,可以设置窗口名。
import cv2
cv2.namedWindow('images', cv2.WINDOW_NORMAL)
2.装载图片:使用cv2.imread()的方法加载图像。通过添加waitkey()函数,程序会在这里停顿,等待用户按下某个键。这样,我们就可以在窗口中看到已经加载的图片。使用cv2.imshow()在窗格中显示图像。
img1 = cv2.imread('img1.jpg')
cv2.imshow('images', img1)
cv2.waitKey(0)
3.添加新的窗格:使用cv2.resizeWindow()函数可以指定窗口的大小,通过设置x,y轴的宽度来确定每一块窗格的大小。
cv2.resizeWindow('images', 600, 600)
4.在新的窗格中显示图像:使用cv2.imshow()在新的窗格中显示图像,确定窗格的坐标及大小。
img2 = cv2.imread('img2.jpg')
cv2.imshow('images', img1)
cv2.waitKey(0)
cv2.imshow('images', img2)
cv2.moveWindow('images',600,0)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上代码片段演示了Python OpenCV一个窗口中显示多幅图像的基本方法。
以下是另外一种实现方法,同时展示三幅图片在同一张窗口中。其中使用到了另一个常用的函数——numpy库中的concatenate()函数。
import cv2
import numpy as np
# 使用concatenate()合并图片
img1 = cv2.imread('img1.jpg')
img2 = cv2.imread('img2.jpg')
img3 = cv2.imread('img3.jpg')
h1, w1 = img1.shape[:2]
h2, w2 = img2.shape[:2]
h3, w3 = img3.shape[:2]
res_img = np.zeros((max(h1, h2, h3), w1 + w2 + w3, 3), dtype=np.uint8)
res_img[0:h1, 0:w1] = img1
res_img[0:h2, w1:w1 + w2] = img2
res_img[0:h3, w1 + w2:w1 + w2 + w3] = img3
cv2.imshow('images', res_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上代码片段演示了Python OpenCV一个窗口中显示多幅图像更直接的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python OpenCV一个窗口中显示多幅图像 - Python技术站