OpenCV学习之cv2.imshow()函数

news2024/12/24 2:25:52

OpenCV学习之cv2.imshow()函数

一、简介

cv2.imshow 是 OpenCV 库中用于显示图像的基本函数之一。在图像处理和计算机视觉的过程中,使用该函数可以快速预览处理后的图像,便于调试和结果展示。

二、基本语法

cv2.imshow('WindowName', Imgmat)

三、参数说明

  • WindowName (str): 窗口名称,用于唯一标识一个窗口。
  • Imgmat (numpy.ndarray): 要显示的图像,通常是一个 numpy 数组。
    • ⚠️⚠️⚠️❗❗❗一定要注意该处的图像数据不能是浮点数像素值,否则imshow函数将进行数据截断大于1的数都截断位1,导致图像显示错误。
    • 为什么要提这个?这是因为我们做图像处理经常会转换成浮点数进行计算

四、示例

示例 1: 显示一张图像
import cv2

# 读取图像,读者需更改路径
image = cv2.imread('2015.jpg')

# 显示图像
cv2.imshow('Image Window', image)

# 等待用户按键(这里的 0 表示无限等待)
cv2.waitKey(0)

# 销毁所有窗口
cv2.destroyAllWindows()
示例 2: 错误显示一张图像
import cv2
import numpy as np

# 读取图像,读者需更改路径
image = cv2.imread('2015.jpg')

# 显示图像,这里会显示很奇怪,因为发生了数据截断,在参数说明部分已经做了说明
cv2.imshow('Image Window', image.astype(np.float64))

# 等待用户按键(这里的 0 表示无限等待)
cv2.waitKey(0)

# 销毁所有窗口
cv2.destroyAllWindows()
示例 3: 实时显示视频帧
import cv2

# 打开摄像头
cap = cv2.VideoCapture(0)

while True:
    # 逐帧捕获
    ret, frame = cap.read()
    
    # 显示帧
    cv2.imshow('Video Frame', frame)
    
    # 按下 'q' 键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放摄像头
cap.release()

# 销毁所有窗口
cv2.destroyAllWindows()

五、非常实用的显示技巧

示例 1: 横向同时显示多张图片(横向拼接)
cv2.imshow('Image Window', np.hstack((image,image)))

在这里插入图片描述

示例 2: 纵向同时显示多张图片(纵向拼接)
cv2.imshow('Image Window', np.vstack((image,image)))

在这里插入图片描述

示例 3: 以矩阵形式同时显示多张图片(双向拼接)
cv2.imshow('Image Window', np.vstack((np.hstack((image,image)),np.hstack((image,image)))))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1877185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Webpack: 借助 Babel+TS+ESLint 构建现代 JS 工程环境

概述 Webpack 场景下处理 JavaScript 的三种常用工具:Babel、TypeScript、ESLint 的历史背景、功能以及接入 Webpack 的步骤借助这些工具,我们能构建出更健壮、优雅的 JavaScript 应用 使用 Babel ECMAScript 6.0(简称 ES6) 版本补充了大量提升 JavaSc…

人生最有力,最棒的十句话!

人生最有力,最棒的十句话 1、允许一切事发生,所有一切发生的事不是你能阻挡了的,你接受,他也发生,你不接受,他也发生,你还不如坦然面对接受现实。 2、你焦虑的时候千万不要躺着啥也不干&#xf…

企业数据挖掘平台产品特色及合作案例介绍

泰迪企业数据挖掘平台是一款通用的、企业级、智能化的数据分析模型构建与数据应用场景设计工具,能够一体化地完成数据集成、模型构建、模型发布,为数据分析、探索、服务流程提供支撑,提供完整的数据探索、多数据源接入、特征处理、模型搭建、…

RpcRrovider分发rpc服务(OnMessage和Closure回调)

目录 1.完善rpcprovider.cc的OnConnection 2.完善rpcprovider.cc的OnMessage 3.完整rpcprovider.h 4.完整rpcprovider.cc 这篇文章主要完成,protobuf实现的数据序列化和反序列化。 1.完善rpcprovider.cc的OnConnection rpc的请求是短连接的,请求一次…

MathType2024最新官方无限永久试用版本下载

“我正在使用MathType,它让我的工作变得简单多了。”在中国科学院数学与系统科学研究院的一间办公室内,研究员张益唐兴奋地对《中国科学报》说。 这位因解决了数学界著名的“孪生素数猜想”而名声大噪的数学家,在谈到他最近使用的数学公式编辑…

如何把项目文文件/文件夹)上传到Gitee(全网最细)

目录 1、首先必须要有一个Gitee官网的账号 2、点击右上角的号,点击新建仓库 3、按照下图步骤,自己起仓库名字,开发语言 4、点击初始化readme文件 5、在自己的电脑上选择姚上传的文件夹,或者文件,这里都是一样的&a…

AI与学术的交响:ChatGPT辅助下的实验设计新篇章

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术研究中,实验设计是确保研究质量和结果可信度的关键环节。这篇文章我们将为大家介绍如何利用ChatGPT辅助完成学术论文的实验设计,通过提供灵感、优化实验步…

【docker】2. 编排容器技术发展史(了解)

该篇文章介绍的主要是编排以及容器技术的发展史(了解即可),如果想单纯学习docker命令操作可直接略过!!! 容器技术发展史 Jail 时代 容器不是一个新概念或者新技术,很早就有了,只是近几年遇到了云计算&am…

昇思25天学习打卡营第4天|扩散模型

文章目录 昇思MindSpore应用实践基于MindSpore的Diffusion扩散模型1、Diffusion Models 简介2、构建 Diffusion Model 的准备工作3、Attention 机制4、条件 U-Net5、Diffusion 正向过程6、Diffusion 反向过程7、Diffusion 模型训练 Reference 昇思MindSpore应用实践 本系列文章…

图形处理单元(GPU)在现代计算中的应用与挑战(研究论文框架)

摘要:随着高性能计算需求的日益增长,图形处理单元(GPU)已从专业的图形渲染处理器转变为具有高性能并行处理能力的多功能计算平台。本文将探讨GPU的核心优势、编程模型、在不同领域的应用以及面临的挑战和限制。此外,还将讨论GPU技术的未来发展趋势和潜在的研究机会。 关键…

Debian/Ubuntu Linux安装OBS

先决条件 建议使用 xserver-xorg 1.18.4 或更新版本,以避免 OBS 中某些功能(例如全屏投影仪)出现潜在的性能问题。在 Linux 上使用 OBS Studio 需要 OpenGL 3.3(或更高版本)支持。在终端中输入以下内容来检查系统支持…

办公效率新高度:利用办公软件实现文件夹编号批量复制与移动,轻松管理文件

在数字化时代,我们的工作和生活都围绕着海量的数据和文件展开。然而,随着数据量的不断增加,如何高效地管理这些数字资产成为了摆在我们面前的一大难题。今天,我要向您介绍一种革命性的方法——利用办公软件实现文件夹编号批量复制…

揭开统计分析的秘密:独立样本和配对样本T检验实战案例

一、独立样本T检验 1.收集20名学生的自信心值 见下表,试问该指标是否与性别有关?(非参数检验或参数检验) 数据值 性别 1,1,1,1,2,2,1,1&#…

UE5蓝图快速实现打开网页与加群

蓝图节点:启动URL 直接将对应的网址输入,并使用即可快速打开对应的网页,qq、discord等群聊的加入也可以直接通过该节点来完成。 使用后会直接打开浏览器。

装载问题(回溯法)

#include<iostream> using namespace std; int n;//货物的数量 int c;//轮船的总的载重量 int cw;//轮船当前的载重量 int r;//货物的总重量 int w[1000];//n个货物各自的重量 int x[1000];//当前最优解 int bestx[1000];//最优解 int bestw;//货物的最优载重量 void Bac…

Day 48 消息队列集群RabbitMQ

消息队列集群-RabbitMQ 一、消息中间件 中间件 tomcat java web中间件 web容器 mysql php php mysql uwsgi python mysql mycat 数据库中间件 rabbitMQ 消息中间件 1、简介 MQ 全称为&#xff08;Message Queue消息队列&#xff09;。是一种应用程序对应用程序的通信方…

gemini 1.5 flash (node项目)

https://www.npmjs.com/package/google/generative-ai https://ai.google.dev/pricing?hlzh-cn https://aistudio.google.com/app/apikey https://ai.google.dev/gemini-api/docs/models/gemini?hlzh-cn#gemini-1.5-flash https://ai.google.dev/gemini-api/docs/get-started…

vue3+vite+nodejs,通过接口的形式请求后端打包(可打包全部或指定打包组件)

项目地址https://gitee.com/sybb011016/test_build 打包通过按钮的形式请求接口&#xff0c;让后端进行打包&#xff0c;后端使用express-generator搭建模版。前端项目就在npm init vuelatest基础上添加了路由 如果只想打包AboutView组件&#xff0c;首先修改后端接口。 //打…

【计算机毕业设计】基于微信小程序的电子购物系统的设计与实现【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

Hadoop3:Yarn常用Shell命令

一、查看任务 1、查看所有任务 yarn application -list2、根据状态查看任务 语法 yarn application -list -appStates &#xff08;所有状态&#xff1a;ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED&#xff09;例如 yarn application…