当前位置: 首页 > news >正文

OpenCV高级图形用户界面(21)暂停程序执行并等待用户按键输入函数waitKey()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

等待按键

该函数 waitKey 在 delay≤0 时无限等待按键事件,或者在 delay 为正数时等待 delay 毫秒。由于操作系统在切换线程时有最小时间间隔,因此函数不会精确等待 delay 毫秒,而是至少等待 delay 毫秒,具体取决于计算机当时正在运行的其他任务。函数返回按下的键的代码,如果没有按键在指定时间内被按下,则返回 -1。如果只想检查是否有按键但不等待,可以使用 pollKey。

注意事项
函数 waitKey 和 pollKey 是 HighGUI 中唯一可以获取和处理 GUI 事件的方法,因此除非 HighGUI 在一个负责事件处理的环境中使用,否则需要定期调用其中一个函数来进行正常的事件处理。

该函数只有在至少创建了一个 HighGUI 窗口并且该窗口处于活动状态时才有效。如果有多个 HighGUI 窗口,任何一个都可以是活动的。

函数原型

int cv::waitKey	
(int 	delay = 0
)	

参数

  • 参数delay:等待的时间,单位是毫秒。
    • 如果 delay 大于 0,则函数等待指定的毫秒数。
    • 如果 delay 等于 0 或小于 0,则函数无限期等待,直到用户按下键盘键。

代码示例


#include <iostream>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main()
{// 加载一张图片Mat image = imread( "/media/dingxin/data/study/OpenCV/sources/images/hawk.jpg" );if ( image.empty() ){cout << "无法加载图片,请检查路径是否正确。" << endl;return -1;}// 创建一个窗口namedWindow( "Image Window", WINDOW_AUTOSIZE );// 显示图片imshow( "Image Window", image );// 等待用户按键int key = waitKey( 0 );  // 无限期等待,直到用户按下按键// 输出用户按下的键的ASCII码值cout << "用户按下的键的ASCII码值为: " << key << endl;// 清理资源destroyAllWindows();return 0;
}

相关文章:

OpenCV高级图形用户界面(21)暂停程序执行并等待用户按键输入函数waitKey()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 等待按键 该函数 waitKey 在 delay≤0 时无限等待按键事件&#xff0c;或者在 delay 为正数时等待 delay 毫秒。由于操作系统在切换线程时有最小…...

其他css的用途

1.animation-fill-mode: backwards; //避免了在动画开始前元素的突然显现&#xff0c;动画必要。 2.用rem响应式字体大小&#xff0c;可以在html样式定义font-size?(例10px&#xff0c;62.5%(100%是16px))。然后样式就可以用rem代替px。 3.color: transparent;: 这行代码将文…...

json路径 [‘a‘].b.c[0].d[‘1‘].f,具体代表什么意思

JSON路径是一种用于从JSON对象中提取数据的表达方式。你给出的路径 [a].b.c.d[1].f 代表了如何逐层访问JSON对象中的数据。让我们逐步解析这个路径&#xff1a; ‌[a]‌&#xff1a; 表示访问JSON对象的根元素中键为 a 的值。使用方括号 [] 通常意味着这个键是一个字符串&#…...

等保测评:如何进行有效的安全合规性审查

等保测评&#xff08;信息安全等级保护测评&#xff09;是一项至关重要的安全合规性审查工作&#xff0c;旨在帮助组织保障信息系统的安全性、合规性&#xff0c;有效应对安全风险&#xff0c;提升整体安全防护水平。下面将从等保测评的流程、意义、应用场景&#xff0c;以及实…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发二 : 18.04ubuntu安装,linux 下build ffmpeg 4.3 源码 并测试

测试环境 ubuntu 18.04 64 位&#xff0c;安装vmware and ubuntu 安装后调整 分辨率&#xff1a; 让windows 可以和 linux 互相复制黏贴 sudo apt-get autoremove open-vm-tools sudo apt-get update sudo apt-get install open-vm-tools-desktop 一直Y reboot 依赖安装 sud…...

将两张图片的不同标记出来

差异过于细微&#xff0c;阈值设置不当&#xff1a;您的差异可能是颜色或位置的微小变化&#xff0c;当前的阈值和处理方式可能不足以检测到这些细微差异。 图像配准不够精确&#xff1a;由于两张图片内容高度相似&#xff0c;特征点匹配可能存在误差&#xff0c;导致图像对齐…...

HarmonyOS开发(State模型)

一、State模型概述 FA&#xff08;Feature Ability&#xff09;模型&#xff1a;从API 7开始支持的模型&#xff0c;已经不再主推。 Stage模型&#xff1a;从API 9开始新增的模型&#xff0c;是目前主推且会长期演进的模型。在该模型中&#xff0c;由于提供了AbilityStage、Wi…...

在 WPF 中使用 OpenTK:从入门到进阶

一、引言 WPF&#xff08;Windows Presentation Foundation&#xff09;是微软推出的用于创建丰富的桌面应用程序用户界面的框架。OpenTK 则为我们提供了强大的图形处理能力&#xff0c;包括 3D 图形渲染、数学计算等功能。将两者结合起来&#xff0c;可以在 WPF 应用程序中实…...

【最新华为OD机试E卷-支持在线评测】水仙花数(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…...

C# WinForm 用名字name字符串查找子控件

工作上遇到界面控件太多&#xff0c;需要对一些控件批量处理。虽然可以用代码批量控制&#xff0c;但要么是建立数组集合把所有要处理的控件放进去循环处理&#xff0c;要么是一个一个列出来修改属性。 但我大多数要求改的控件命名上是有规律的&#xff0c;所有只需要循环拼接字…...

Ubuntu下安装并初始化Git同时添加SSH密钥

在 Ubuntu 上可以使用以下命令安装git&#xff1a; sudo apt-get update sudo apt-get install git 在 Ubuntu 下安装好 Git 之后&#xff0c;接下来可以进行一些基本的配置和操作&#xff0c;以便更好地使用 Git。 1. 配置 Git 用户信息 在使用 Git 进行版本控制前&#x…...

好用的AI工具:探索智能生活的无限可能

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《热点时事》 期待您的关注 目录 引言 一&#xff1a;常用AI工具 1. 语音助手&#xff08;如Siri、小爱同学&#xff09; 2. 智…...

-bash: conda: command not found

-bash: conda: command not found 说明当前的终端环境中没有找到 conda 命令&#xff0c;可能是因为 Conda 没有安装&#xff0c;或者当前的环境变量中没有包含 Conda 的路径。 解决方法 确保 Conda 已安装 确认 Conda 路径是否添加到环境变量 如果 Conda 已安装&#xff0c;…...

STM32-CubeIDE用串口通讯

USART串口通讯 一、轮询模式 1.设置所接引脚为UART异步模式 选择完成CTRLS保存。 2.编写测试代码&#xff08;自动发送hello world&#xff09; 在mian函数里面编写代码 原函数 调用函数&#xff0c;需要数据类型一致&#xff0c;使用函数通过串口发送数组里面的数据 打开串…...

FloodFill 算法(DFS)

文章目录 FloodFill 算法&#xff08;DFS&#xff09;图像渲染岛屿数量岛屿的最大面积被围绕的区域太平洋大西洋水流问题扫雷游戏衣橱整理 FloodFill 算法&#xff08;DFS&#xff09; 漫水填充(Flood Fi)算法是一种图像处理算法&#xff0c;在计算机图形学和计算机视觉中被广泛…...

计算机通信与网络实验笔记

1.LINUX通过版本号判断是否为稳定版本 2.计网基础 &#xff08;CD&#xff09;&#xff0c;默认二层以太网交换机。 &#xff08;10&#xff09;物理层是均分&#xff08;除以&#xff09;&#xff0c;数据链路层及以上是不除的。 3.传输介质&#xff1a; &#xff08;1&…...

闲聊【干龙头】的重要性

市场面临转势&#xff0c;我们不知道谁会先涨&#xff0c;资金量大的操作必然会提前布局&#xff0c;而我们需要做的就是睁大眼睛&#xff0c;等待最强的那只股票出现&#xff0c;然后闭着眼睛进入就可以了。 追涨操作为什么都出现在大盘大涨情况下。原因简单&#xff0c;不能确…...

Ubuntu22.04安装RTX3080

Ubuntu22.04安装RTX3080 1 安装基础环境 更新依赖包 sudo apt-get update sudo apt-get upgrade2 安装驱动 &#xff08;1&#xff09;查看适合的显卡驱动 # 查看可用的驱动 sudo ubuntu-drivers devices# 返回值&#xff0c;推荐版本&#xff1a;nvidia-driver-550 ERROR…...

嵌入式学习-IO进程-Day04

嵌入式学习-IO进程-Day04 进程的函数接口 fork和Vfork 回收进程资源 wait waitpid 退出进程 获取进程号&#xff08;getpid&#xff0c;getppid&#xff09; 守护进程 守护进程的特点 创建步骤 exec函数族 线程 概念 线程和进程的区别 线程资源 线程函数接口 创建线程&#xff…...

RAII - 安卓中的智能指针

RAII - 安卓中的智能指针 概念 sp wp RefBase 是什么 system/core/libutils/RefBase.cpp system/core/libutils/include/utils/RefBase.hsystem/core/libutils/StrongPointer.cpp system/core/libutils/include/utils/StrongPointer.hAndroid在标准库之外&#xff0c;自定义…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...