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安装使用命令行交互模块pexpect的基础教程
May 12 Python
利用Python爬取可用的代理IP
Aug 18 Python
深入理解python对json的操作总结
Jan 05 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
pandas通过索引进行排序的示例
Nov 16 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 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通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
javascript实现导航栏分页效果
2019/06/27 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
python实现音乐下载器
2018/04/15 Python
Python subprocess模块常见用法分析
2018/06/12 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python实现画循环圆
2019/11/23 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
电大自我鉴定
2013/10/27 职场文书
信息技术教学反思
2014/02/12 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
博士生求职信
2014/07/06 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
创业计划书之校园超市
2019/09/12 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers