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查找指定具有相同内容文件的方法
Jun 28 Python
python修改字典内key对应值的方法
Jul 11 Python
Python3.5面向对象程序设计之类的继承和多态详解
Apr 24 Python
Python文本处理简单易懂方法解析
Dec 19 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
python 带时区的日期格式化操作
Oct 23 Python
在终端启动Python时报错的解决方案
Nov 20 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
js 省地市级联选择
2010/02/07 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
解决Python传递中文参数的问题
2015/08/04 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Python生成词云的实现代码
2020/01/14 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
酒后驾驶检讨书
2014/01/27 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
网络技术专业求职信
2014/07/13 职场文书
酒店前台岗位职责
2015/04/16 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Ajax实现三级联动效果
2021/10/05 Javascript
Linux中文件的基本属性介绍
2022/06/01 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers