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的汉字转GBK码实现代码
Feb 19 Python
python 生成图形验证码的方法示例
Nov 11 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
python3 pathlib库Path类方法总结
Dec 26 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
python IP地址转整数
Nov 20 Python
python如何修改文件时间属性
Feb 05 Python
Python自然语言处理之切分算法详解
Apr 25 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和ACCESS写聊天室(六)
2006/10/09 PHP
PHP 数组实例说明
2008/08/18 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
js 提交和设置表单的值
2008/12/19 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
python中字典按键或键值排序的实现代码
2019/08/27 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
上班玩游戏检讨书
2014/02/07 职场文书
2014年外联部工作总结
2014/11/17 职场文书
投标邀请书范本
2015/02/02 职场文书
护士求职自荐信范文
2015/03/04 职场文书
2015年个人思想总结
2015/03/09 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL