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

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;
}

http://www.kler.cn/news/357539.html

相关文章:

  • Unity Spine优化思路
  • 【Python数据库操作】使用SQLite和MySQL进行数据存储和查询!
  • [Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器
  • WPF自定义控件实现的几种方法
  • Gin框架操作指南07:路由与中间件
  • 计算机网络—vlan(虚拟局域网)
  • 【exceljs】纯前端如何实现Excel导出下载和上传解析?
  • efficientNetV2骨干
  • 搜维尔科技:我们用xsens动作捕捉技术制作的数字人
  • Python基础之集合使用详解
  • 2-127基于matlab的非圆齿轮啮合动画设计
  • 基于Python+Flask的天气预报数据可视化分析系统(源码+文档)
  • Maxwell 底层原理 详解
  • 【Kafka】Kafka Producer的缓冲池机制原理
  • 目标检测数据集图片及标签同步裁剪
  • 下载并安装 WordPress 中文版
  • 数字后端实现静态时序分析STA Timing Signoff之min period violation
  • LeetCode.102 二叉树的层序遍历
  • 【无标题】vertex shader and fragment shader
  • 美摄科技云服务解决方案,方案成熟,接入简单