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日期操作学习笔记
Oct 07 Python
Python 正则表达式操作指南
May 04 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
python识别图像并提取文字的实现方法
Jun 28 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
python打包生成so文件的实现
Oct 30 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/06/03 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
php类自动加载器实现方法
2015/07/28 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php生成word并下载代码实例
2019/03/15 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
python实现博客文章爬虫示例
2014/02/26 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
Python中过滤字符串列表的方法
2020/12/22 Python
有机童装:Toby Tiger
2018/05/23 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
.NET笔试题(20个问题)
2016/02/02 面试题
追悼会主持词
2014/03/20 职场文书
股权转让协议书范本
2014/04/12 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书