OpenCV4入门系列教程12:键盘输入waitKey

索引地址:系列教程索引地址
s
上一篇:OpenCV4入门系列教程11:计时getTickCount()

OpenCV捕获键盘输入使用waitKey()函数。

函数原型为:

1
int waitKey(int delay=0);

参数说明:

  • delay表示延时时间,单位为ms。
  • 返回值为整数,表示获取到的键盘输入,没有键盘输入时返回-1。

延时

1
2
3
4
5
6
7
8
9
10
11
12
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(){
Mat img = cv::imread("lena.jpg");
imshow("lena",img);
waitKey(5000);
return 0;
}

执行到waitkey函数运行开始计时,如果在5000毫秒之内获取到键盘输入,就执行waitkey之后的语句。如果没有输入就等到5000毫秒之后自动执行waitkey之后的语句。

如果delay为0,即waitKey(0)。那么就一直停留在waitkey语句中,表现为显示的图片一直都在,除非键盘输入什么(任意键)。

捕获键盘值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(){
Mat img = cv::imread("lena.jpg");
while(1){
imshow("lena",img);
if(waitKey(30)==27){
break;
}
}
return 0;
}

循环显示图片,直到捕获到键值Esc退出循环,因为循环之后是函数返回值,就是直接退出程序。

下一篇:OpenCV4入门系列教程13:视频文件(摄像头)读取与显示