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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
Python内置函数OCT详解
Nov 09 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Django中反向生成models.py的实例讲解
May 30 Python
python 拼接文件路径的方法
Oct 23 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
在django中form的label和verbose name的区别说明
May 20 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
php计算十二星座的函数代码
2012/08/21 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
php实现的xml操作类
2016/01/15 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
python数组复制拷贝的实现方法
2015/06/09 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
Python自定义简单图轴简单实例
2018/01/08 Python
Python日志模块logging基本用法分析
2018/08/23 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python多进程重复加载的解决方式
2019/12/13 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
建筑行业的大学生自我评价
2013/12/08 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫