OpenCV(cv::waitKey())



cv::waitKey() 是 OpenCV 库中的一个函数,用于等待用户的键盘输入。它在处理图像和视频时非常有用,特别是在显示图像窗口时,用于控制图像的显示和响应用户输入。



1. 函数解析

int cv::waitKey(int delay = 0);

参数

  • delay: 指定等待时间,单位是毫秒。函数将在这个时间内等待用户的按键输入。如果设置为 0,函数将无限期等待直到用户按下键盘上的任意键。

返回值

  • 返回值: 函数返回一个整数值,该值是用户按下的键的 ASCII 码。如果没有按键被按下(例如,delay 为 0),则返回 -1。


2. 示例

以下是一个简单的示例,展示如何使用 cv::waitKey() 来显示图像并等待用户按键关闭窗口:

#include <opencv2/opencv.hpp>

int main() {
    // 创建一个简单的图像
    cv::Mat image = cv::Mat::zeros(300, 300, CV_8UC3);
    cv::rectangle(image, cv::Point(50, 50), cv::Point(250, 250), cv::Scalar(0, 255, 0), -1);

    // 创建一个窗口并显示图像
    cv::namedWindow("Image Window", cv::WINDOW_AUTOSIZE);
    cv::imshow("Image Window", image);

    // 等待用户按下任意键
    int key = cv::waitKey(0);

    // 输出按下的键的 ASCII 码
    std::cout << "Key pressed: " << key << std::endl;

    return 0;
}


3. 说明

  • 窗口更新: cv::waitKey() 在等待键盘输入的同时,还会更新窗口。这对于动态显示图像或视频流非常重要。
  • 多窗口应用: 如果有多个窗口同时打开,cv::waitKey() 将对最前面的窗口进行键盘输入检测。
  • 处理按键事件: 根据返回的键值,可以实现特定的按键事件处理,例如关闭窗口或执行其他操作。


4. 注意事项

  • 阻塞行为: 如果 delay 设置为 0,函数将无限阻塞,直到用户按下键。可以用于在应用程序中暂停显示,直到用户做出某些操作。
  • 跨平台兼容性: cv::waitKey() 在不同操作系统下的行为略有不同,但基本功能是一致的。


posted @   做梦当财神  阅读(413)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-08-14 AdaBoost 算法
2019-08-14 梯度提升树(GBDT)
点击右上角即可分享
微信分享提示