python opencv将多个图放在一个窗口的实例详解


Posted in Python onFebruary 28, 2022

编程需求:使用python+opencv对图像进行处理,把两张图放在一起显示

方法:使用numpy模块中的水平堆叠竖直堆叠完成所有图像的堆叠,最后当成一整张图显示。

注意:把不同的尺寸(宽和高)的图片或不同的颜色通道在一起来展示,会发生黑屏,所以要么把两张图的高度设置相同,要么宽度相同。这样才能正常显示。

举个栗子:

1.只设置两张图的高相同,拼接两图,显示;只设置两张图的宽相同,拼接两图,显示。

import cv2
import numpy as np
#读图1和图2
img1 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\3.jpg")
img2 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\1.jpeg")
#重新设置图1的宽和高
img1 = cv2.resize(img1, (400, 400))
#设置图2的高为400,与图1相同,宽自己任意设置,我这里设置为200
img2 = cv2.resize(img2, (200, 400))
#设置图2的宽为300,与图1相同,高自己任意设置,我这里设置为200
img3 = cv2.resize(img2, (400, 200))
# 高度相同的图像,横向水平拼接图
imgStackH = np.hstack((img1, img2))
# 宽度相同的图像,垂直水平拼接图
imgStackV = np.vstack((img1, img3))
# 在窗口显示图像 imgStackH 横向水平拼接图
cv2.imshow("DemoStackH", imgStackH)
# 在窗口显示图像 imgStackV垂直水平拼接图
cv2.imshow("DemoStackV", imgStackV)
key = cv2.waitKey(0)  # 等待按键命令

运行结果:宽度相同时拼接

python opencv将多个图放在一个窗口的实例详解

 高度相同时拼接

python opencv将多个图放在一个窗口的实例详解

 从上面结果可以看出,虽然两张图拼接到了一起,但是各自的比例完全不对,所以在使用这个方法的时候要知道:这个方法只适用于两张图片/多张图片 宽高比例相同或者相似的情况。

原本这两张图的比例是相似的,但是为了理解,上面的例子我把图1的比例改了。

下面展示两张比例相似的图拼接的结果:(只拼接高度相同的情况,宽度相同的情况与这个类似,就不写了)

python opencv将多个图放在一个窗口的实例详解

附代码: 

import cv2
import numpy as np
#读图
img1 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\3.jpg")
img2 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\1.jpeg")
#1.设置两个图的高相同,然后拼接
#打印了解图1的高:634 和宽:400 (shape方法第一个参数是 高)
print(img1.shape)
#打印了解图2的宽和高:(1000, 667)
print(img2.shape)
#设置图2的高为:634 resize设置宽和高的第二个参数是 高,图2的宽自定义,这里我设置的400
img2 = cv2.resize(img2, (400, 634))
# 高度相同图像可以横向水平拼接
imgStackH = np.hstack((img1, img2))
# 在窗口显示横向拼接图像 imgStackH
cv2.imshow("DemoStackH", imgStackH)
key = cv2.waitKey(0)  # 等待按键命令

到此这篇关于python opencv将多个图放在一个窗口的文章就介绍到这了,更多相关python opencv多个图放在一个窗口内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的百度站长自动URL提交小工具
Jun 27 Python
让Python代码更快运行的5种方法
Jun 21 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
python中的字典操作及字典函数
Jan 03 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
Python3模拟登录操作实例分析
Mar 12 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
Python的形参和实参使用方式
Dec 24 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
pandas中关于apply+lambda的应用
Feb 28 #Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
Python 数据可视化神器Pyecharts绘制图像练习
Python使用OpenCV实现虚拟缩放效果
python保存图片的四个常用方法
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
You might like
php下通过POST还是GET来传值
2008/06/05 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
js创建对象的区别示例介绍
2014/07/24 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
js同源策略详解
2015/05/21 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python中私有属性的定义方式
2020/03/05 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
质检员岗位职责
2013/12/17 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
施工员岗位职责
2015/02/10 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android