目录
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()
在不同操作系统下的行为略有不同,但基本功能是一致的。
标签:窗口,函数,用户,OpenCV,图像,cv,waitKey From: https://www.cnblogs.com/keye/p/18358506