waitKey仅对窗口机制起作用,即namedWindow产生的窗口。若在此之前没有产生窗口,则waitKey相当于未执行。

注:namedWindow产生的窗口: namedWindow()+imshow()    或者   只有imshow() 都是可以的。

/***********************************************************************************/

openv中对cvWaitkey函数的定义如下:

int cvWaitKey( int delay=0 )

返回值为int型,函数的参数为int型,当delay小于等于0的时候,如果没有键盘触发,则一直等待,此时的返回值为-1,否则返回值为键盘按下的码字;当delay大于0时,如果没有键盘的的触发,则等待delay的时间,此时的返回值是-1,否则返回值为键盘按下的码字。

测试代码如下:

#include<stdio.h>
#include<cv.h>
#include<highgui.h>
int main()
{ IplImage *src=cvLoadImage("car.jpg",-1);
 cvShowImage("car",src);
 int t=cvWaitKey(-1);
 printf("cvWaitKey return: %d",t);
 return 0;
}

/*************************************************************************************/

waitKey有两个作用:

1. It waits for x milliseconds for a key press. If a key was pressed during that time, it returns the key's ASCII code. Otherwise, it returns -1.

2It handles any windowing events, such as creating windows with cv::namedWindow(), or showing images with cv::imshow().

格式:

waitKey(x);

第一个参数: 等待x ms,如果在此期间有按键按下,则立即结束并返回按下按键的

ASCII码,否则返回-1

如果x=0,那么无限等待下去,直到有按键按下

另外,在imshow之后如果没有waitKey语句则不会正常显示图像。

附:

int c=cv::waitKey(0);
if((char)c==27)//27:Esc//>a
break;
if((char)c=='r')//>b

以上>a和>b中(char)加与不加都是等价的!

waitKey()的更多相关文章

  1. OpenCV: imshow后不加waitkey无法显示视频

    OpenCV显示视频帧时出现一个问题,就是imshow之后若是不加waitkey则无法显示,找了很久也没找到原因. 只是发现也有人发现这个问题:   cvWaitKey(x) / cv::waitKe ...

  2. camera按键采集图像及waitKey的用法(转)

    源: camera按键采集图像及waitKey的用法

  3. 机器学习进阶-图像基本操作-图像数据读取 1.cv2.imread(图片读入) 2.cv2.imshow(图片展示) 3.cv2.waitKey(图片停留的时间) 4.cv2.destroyAllWindows(清除所有的方框界面) 5.cv2.imwrite(对图片进行保存)

    1. cv2.imread('cat.jpg', cv2.IMGREAD_GRAYSCALE)  # 使用imread读入图像(BGR顺序), 使用IMGREAD_GRAYSCALE 使得读入的图片为 ...

  4. camera按键采集图像及waitKey的用法

    前言 项目需要通过摄像头采集图像并保存,主要是用于后续的摄像头标定.实现过程其实很简单,需要注意一些细节. 系统环境 系统版本:ubuntu16.04:opencv版本:opencv2.4.13:编程 ...

  5. opencv cv::imageshow 不加waitKey()不能显示图片

    官方解释是highgui 没有给imshow绘制处理的时间.需要在imshow添加waitKey() waitKey()单位是ms

  6. 【OpenCV】关于 waitKey()的使用方法

    C++: int waitKey(int delay=0) cvWaitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms. 返回值为当前键盘按键值. 所以显示图像时,如果需要在cv ...

  7. opencv学习之等待按键事件-waitKey函数

    文章来源: https://mangoroom.cn/opencv/opencv-learning-waitKey.html 序 waitKey函数属于opencv函数里既常用又非常基础的函数,无论是 ...

  8. ERROR:imshow、Mat、waitkey找不到标识符(opencv)

    可以发现imshow.Mat.waitkey这三个都是opencv相关的. 在添加了相关库文件后还是有问题. #include "stdafx.h" #include <st ...

  9. OpenCV waitKey 无法正常捕捉方向键(上下左右),总结和解决方案,可以用waitKeyEx

    在win10+python+opencv3.4.5,测试 while True: key = cv2.waitKey(0) print('key =', key) 依次按上.下.左.右方向键,输出: ...

随机推荐

  1. javaScript tips —— z-index 对事件机制的影响

    demo // DOM结构 class App extends React.Component { componentDidMount() { const div1 = document.getEle ...

  2. PHP会话控制之如何正确设置session_name

    定义: string session_name([string $name]) 说明: 在php.ini中配置为:session.name = PHPSESSID 在请求开始的时候,会话名称会被重置并 ...

  3. HTML之实现页面缓存

    一般来说,对于html页面,一个站点,每个页面都会有相同的公共文件,比如页面的头部.尾部.侧边栏目.公共JS等.访问站点下的每一个页面,相同的公共文件,都需要重复从服务器下载.从性能和带宽角度看,重复 ...

  4. 解决Tomcat加载时报APR错的问题

    部署Tomcat的时候出现了如下错误, INFO: The APR based Apache Tomcat Native library which allows optimal performanc ...

  5. javascript的几种使用多行字符串的方式

    JS里并没有标准的多行字符串的表示方法,但是在用模板的时候,为了保证模板的可阅读性,我们又不可避免的使用多行字符串,所以出现了各种搞法,这里以一段jade的模板作为示例,简单总结和对比一下. 字符串相 ...

  6. Linux命令详解-mkdir

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...

  7. tensorflow入门(三)

    三种代价函数 1,二次代价函数   式子代表预测值与样本值的差得平方和 由于使用的是梯度下降法,我们对变量w,b分别求偏导: 这种函数对于处理线性的关系比较好,但是如果遇到s型函数(如下图所示),效率 ...

  8. buctoj——合法的出栈顺序

    题目描述 我们知道,一个入栈序列是{1,2,3}的合法出栈序列有{3,2,1},{1,2,3}等,而{3,1,2}是不合法的.现在冰语有一个长度为n的序列A(保证序列内数字唯一,且1<=A[i] ...

  9. keepererrorcode = connectionloss for 错误处理

    自己的环境在虚拟机上,于是使用同事的环境调试问题,发现无法初始化成功,提示keepererrorcode = connectionloss for,于是上网查了下资料整理如下: 1.对比代码中引用的j ...

  10. Data truncated for column

    数据类型不合法造成的.检查插入的数据.