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实现各种排序算法的代码示例总结
Dec 11 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
python判断数字是否是超级素数幂
Sep 27 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
python opencv摄像头的简单应用
Jun 06 Python
python中列表的含义及用法
May 26 Python
通过代码实例了解Python异常本质
Sep 16 Python
使用django自带的user做外键的方法
Nov 30 Python
python自动化调用百度api解决验证码
Apr 13 Python
python实现Thrift服务端的方法
Apr 20 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简单创建压缩图的方法
2016/08/24 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
Python中Collection的使用小技巧
2014/08/18 Python
python中正则的使用指南
2016/12/04 Python
Python快速排序算法实例分析
2017/11/29 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
如何清空python的变量
2020/07/05 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
python 用struct模块解决黏包问题
2020/11/07 Python
制药工程专业毕业生推荐信
2013/12/24 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
生物学学生自我评价
2014/01/17 职场文书
求职面试个人自我评价
2014/02/28 职场文书
国企干部对照检查材料
2014/08/22 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
自荐信模板大全
2015/03/27 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
《去年的树》教学反思
2016/02/18 职场文书
理解python中装饰器的作用
2021/07/21 Python
解决Redis启动警告问题
2022/02/24 Redis
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA