CV

您所在的位置:网站首页 opencv多窗口显示 CV

CV

2023-08-15 08:21| 来源: 网络整理| 查看: 265

转自: https://blog.csdn.net/ITBigGod/article/details/87009082

1. 单纯的用cv2.imshow打开多个窗体

比如你某个文件夹下有多张图片,你不想imshow一张一张的显示,你想放在一个窗口中显示。 或者是把多张图片放在一个窗体内对比展示,而不是同时打开多个窗体。

如果用单纯的用cv2.imshow打开多个窗体来显示多张图片是这样:

cv2.namedWindow("original_img", cv2.WINDOW_NORMAL) cv2.resizeWindow('original_img', 1000, 1000) cv2.imshow('original_img', original_img)

图示:

在这里插入图片描述

那么显示出来是多个窗口对应不同的图片。显示不是我们想要的。

2. 使用opencv展示多张图片

使用opencv展示多张图片: 简单例:

def opecv_muti_pic(): # 图1 img = cv.imread('E:\\tmp\\cat1.jpg') # 图2 img2 = cv.imread('E:\\tmp\\cat2.jpg') # 图集 imgs = np.hstack([img,img2]) # 展示多个 cv.imshow("mutil_pic", imgs) #等待关闭 cv.waitKey(0)

效果图:

在这里插入图片描述

3. 使用python3 + opencv3 一个窗口中显示多张图片

python3 + opencv3 版:

(函数封装多图)

import argparse import glob import cv2 import numpy as np import os # 一个窗口窗口显示多张图片:python3 + opencv3的版本。 # 传入的参数是: # 1. 图片的集合(大小、通道数需要一致,否则黑屏) # 2. 想显示到一张图片的大小 # 3. 图片间隔大小。 # 如果图片太多,会自动省略多的图片,不够严谨。 def show_in_one(images, show_size=(500, 500), blank_size=2, window_name="merge"): small_h, small_w = images[0].shape[:2] column = int(show_size[1] / (small_w + blank_size)) row = int(show_size[0] / (small_h + blank_size)) shape = [show_size[0], show_size[1]] for i in range(2, len(images[0].shape)): shape.append(images[0].shape[i]) merge_img = np.zeros(tuple(shape), images[0].dtype) max_count = len(images) count = 0 for i in range(row): if count >= max_count: break for j in range(column): if count


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3