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 修改文件指定行的方法
May 15 Python
使用python实现rsa算法代码
Feb 17 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
django使用html模板减少代码代码解析
Dec 12 Python
python实现学生信息管理系统
Apr 05 Python
Python3.5 创建文件的简单实例
Apr 26 Python
python读取目录下最新的文件夹方法
Dec 24 Python
python爬虫 正则表达式解析
Sep 28 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
Python OpenCV快速入门教程
Apr 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP 类型转换函数intval
2009/06/20 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
python连接mongodb密码认证实例
2018/10/16 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
致跳远、跳高运动员广播稿
2014/01/09 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
开幕式邀请函
2015/01/31 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
Java获取字符串编码格式实现思路
2022/09/23 Java/Android
mysql数据库如何转移到oracle
2022/12/24 MySQL