OpenCV中waitKey( )内不同参数耗时计算和返回值

平台:

C++:

int cv::waitKey	(int delay = 0)	

Python:

retval	=	cv.waitKey( [,delay])

官方解释:

当delay≤0时,函数waitKey无限等待键事件(即按下按键),或者等待正数时长的延迟(单位:毫秒)。

注意:

  • 由于操作系统在切换线程之间的间隔时间最短,因此该功能将不会等待确切的延迟毫秒,而是将至少等待延迟毫秒,具体取决于当时计算机上正在运行的其他东西。
  • 它返回所按下键的代码,如 Esc = 27
  • 如果在经过指定时间之前未按下任何键,则返回 -1
  • 需要注意不同 delay 值的不同耗时

测试代码

#include
#include
#include 

using namespace cv;
using namespace std;

int main()
{
     
	Mat src = imread("1.jpg");
	double start, end;

	imshow("car", src);
	
	start = clock();
	int delay = waitKey(1000);		// 1s(1000ms)内无操作则返回 -1  耗时1001ms
	end = clock();
	cout << "TotalTime = " << (double)((end - start) * 1000 / CLOCKS_PER_SEC) << "ms" << endl;
	
	printf("waitKey = %d", delay);
	return 0;
}

其它参数

  • 都需要按键操作
int delay = waitKey(-1);	//返回对应键值的ASCII值 - TotalTime = 1829ms
int delay = waitKey(0);		//返回对应键值的ASCII值 - TotalTime = 3263ms

结论

如果 delay > 0 ,在规定的 delay时间 内没有按键操作,则返回 -1 ,否则返回对应的 ASCII值
如果 delay = 0delay < 0 ,返回对应的 ASCII值

你可能感兴趣的:(OpenCV,c++,opencv)