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中的闭包总结
Sep 18 Python
Python实现数据库编程方法详解
Jun 09 Python
Python如何生成树形图案
Jan 03 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Django中create和save方法的不同
Aug 13 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
解决pycharm安装第三方库失败的问题
May 09 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Python保存并浏览用户的历史记录
Apr 29 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
一个用于网络的工具函数库
2006/10/09 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
PHP开发注意事项总结
2015/02/04 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
Vue中keep-alive组件作用详解
2020/02/04 Javascript
Python中的装饰器用法详解
2015/01/14 Python
python多进程实现文件下载传输功能
2018/07/28 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python阶乘求和的代码详解
2020/02/14 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
劳资员岗位职责
2013/11/11 职场文书
大学自我鉴定范文
2013/12/26 职场文书
书法比赛获奖感言
2014/02/10 职场文书
工程采购员岗位职责
2014/03/09 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
尊师重教主题班会
2015/08/14 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
MySQL的存储过程和相关函数
2022/04/26 MySQL