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实现随机森林random forest的原理及方法
Dec 21 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
Python操作Jira库常用方法解析
Apr 10 Python
pytorch实现查看当前学习率
Jun 24 Python
python 读取串口数据的示例
Nov 09 Python
python语言实现贪吃蛇游戏
Nov 13 Python
python跨文件使用全局变量的实现
Nov 17 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
基于游标的分页接口实现代码示例
2018/11/12 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python输出9*9乘法表的方法
2015/05/25 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python实现简单日期工具类
2019/04/24 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
传播学毕业生求职信
2013/10/11 职场文书
理货员的岗位职责
2013/11/23 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js