OpenCV——waitKey()简介

写在前面

在我的编程学习过程中,我经常在CSDN上观摩大佬们的博客来提高自己的编程能力和知识,在此之前从未想过写一点东西发出来看看。最近我的学长推荐我写一点东西出来,一是给自己一个记录知识点的平台,二是将自己的观点发表出来让大家斧正。因此在这里也希望各位能够多多指教!!!

起源

前两天有一个刚刚开始学习CV的学弟过来问我一个代码,开始时场面异常和谐,他巴拉巴拉一问,我巴拉巴拉一讲。
在这里插入图片描述
结果,临走时学弟问了一句“学长,这行代码是干嘛用的?它的返回值是什么?”(如下)

if(waitKey(30)==27)
{
	break;
}

然后,我,,,尴尬了。(也不能说不知道,毕竟学习了那么久了,还是知道大概的:waitKey(30)是等待30ms关闭窗口,或者按下ESC键退出。但是对于waitKey()别的东西就不知道了!!!)

重点

用法解释:
waitKey()函数一共三个用法:①用于循环语句,作为延时函数,即等待一个给定时间(ms)后,关闭图像然后开启下一轮循环;②用于判断语句,在一个给定时间内等待键盘输入,若输入待输入字符则执行相关语句,若超时则关闭图像;③用于显示单张图片,当我们想显示的是一张图片时可以使用waitKey(0),这样就能一直显示了(直到你自己把窗口关掉)。
代码举例

//第一种,用于循环语句
#include<opencv2/opencv.hpp>

using namespace cv;
int main()
{
	VideoCapture capture(0);//打开一个默认的相机
	if(!capture.isOpened()) //检查是否成功打开
	     return -1;
	while(1)
	{
		Mat frame;
		capture>>frame;//从相机读取新一帧
		namedWindow("视频");
		imshow("视频", frame);//显示图像
	    waitKey(30);
	    /*
	    if(waitKey(30) == 27)   //第二种,用于判断语句
	    	break;
	    */
	 }
	return 0;
}

第一种方法和第二种方法是有很大区别的,当使用第一种方法时,我们运行程序是关不掉摄像头的,使用第二种时可以通过按下ESC键关掉摄像头。

//第三种,用于判断语句
#include<opencv2/opencv.hpp>

using namespace cv;
int main()
{
	Mat img = imread("test.jpg");  //读取图片,有时候相对路径会报错,到时候换成绝对路径就好
	namedWindow("test");
    imshow("test",img);
    waitKey(0);
    
	return 0;
}

Alt

写在后面

本次分享到这里就结束了,第一次写文章可能存在一些逻辑错误还望见谅!!!此外本人也是一枚粉嫩嫩的CV新人,请各位大佬多多指教!!!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值