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

embedded/2024/10/22 11:31:12/
  • 操作系统: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;
}

http://www.ppmy.cn/embedded/129547.html

相关文章

基于ElementPlus的table组件封装

前言 我们在使用UI库编写页面的时候&#xff0c;特别是账务系统&#xff0c;需要用到表格的情况会比较多&#xff0c;如果我们每次都是复制一遍UI库中的demo然后进行调整&#xff0c;这样造成的结果是多次引入 Table 组件&#xff0c;而且从前端开发规范来讲&#xff0c;不符合…

双线性变换法

给定模拟信号&#xff0c;要用数字滤波器对它进行滤波。按照双线性变换法&#xff0c;步骤如下&#xff08;假设为高通滤波器&#xff09;&#xff1a; &#xff08;1&#xff09;选择一个采样频率&#xff0c;对进行采样&#xff0c;得到时域离散信号。 &#xff08;2&#…

YOLOv11来了 | 自定义目标检测

概述 YOLO11 在 2024 年 9 月 27 日的 YOLO Vision 2024 活动中宣布&#xff1a;https://www.youtube.com/watch?vrfI5vOo3-_A。 YOLO11 是 Ultralytics YOLO 系列的最新版本&#xff0c;结合了尖端的准确性、速度和效率&#xff0c;用于目标检测、分割、分类、定向边界框和…

userspace 和 kernelspace

Kernel Space&#xff08;内核空间&#xff09; 定义与功能 内核空间是操作系统核心代码运行的地方&#xff0c;主要包括&#xff1a; 内存管理&#xff1a;管理和分配内存资源&#xff0c;包括物理内存和虚拟内存的映射。 进程管理&#xff1a;管理进程的创建、调度和终止&am…

SQL注入原理、类型、危害与防御

SQL注入的原理概念 SQL注入是一种常见的网络攻击技术&#xff0c;攻击者通过在Web应用程序的输入字段中注入恶意构造的SQL代码&#xff0c;以欺骗后端数据库执行非预期的SQL命令。这种攻击可以导致数据泄露、权限提升、数据篡改甚至系统瘫痪。SQL注入可以分为多种类型&#xf…

Arduino配置ESP32环境

Arduino配置ESP32环境 引言一、IDE下载教程操作取巧方法 二、社区安装包三、官方手动安装 引言 最近入手了一款ESP32-C3的开发板&#xff0c;想继续沿用现有Arduino IDE&#xff0c;网上看了很多方法&#xff0c;大致分了三类&#xff1a;IDE下载、社区安装包、github手动配置…

Task Registration Process

Task Registration Process 活动报名流程&#xff1a; [蓝色隐士] 工具-【集合石】 【创建】 填写活动 标题、类型、报名截止日期、报名截止时间、详情 【确定】 可【。。。】和【分享】微信

AnaTraf | 网络流量分析仪:网络故障排除的利器

http://www.anatraf.com 网络流量分析仪作为一种强有力的工具&#xff0c;能够帮助IT运维人员快速识别和解决网络故障&#xff0c;从而优化网络性能。 什么是网络流量分析仪&#xff1f; 网络流量分析仪是一种监测和分析网络流量的工具&#xff0c;能够实时捕捉数据包并提供…