OpenCV:waitKey函数

绪:
waitKey()函数在显示图像时具有延时的感化;
是OpenCV中的一个根基函数;
本文本家儿要介绍waitKey函数的格局, 功能, 以及waitKey窗口机制和waitKey的应用;

OpenCV:waitKey函数

文章插图

需要这些哦
OpenCV 2410
方式/
1waitKey格局:
int waitKey(int delay=0)
delay-延时的时候, 单元ms;

OpenCV:waitKey函数

文章插图

2waitKey函数的功能:
①期待x ms, 若是在此时代有按键按下, 则当即竣事并返回按键的ASCII码, 不然返回-1;
②若是x=0, 则无限期待下去, 直到有按键按下;
【注】:在imshow之后, 若是没有waitKey语句则不会显示图像 。

OpenCV:waitKey函数

文章插图

3waitKey函数的窗口机制:
waitKey的延时功能本家儿要针对图像窗口机制的;
没有窗口, 则waitKey号令不执行;
纯粹的延时用sleep号令;
void update(void *param) 

    VideoCapture cap; 
    cap.open("test.avi"); 
    if ( !cap.isOpened() ) 
    { 
        return ; 
    } 
    for(;;) 
    { 
        cap>>frame; 
        //cvNamedWindow("tmp");//加上这个, 再利用waitkey就没问题了 
        //waitKey(100);//利用waitkey法式必定崩, 本家儿如果因为waitkey是对窗口机制起感化的, 即namedWindow发生的窗口, 若没有发生的窗口, 则waitkey半斤八两于未执行, 当视频帧很快的被读完, frame为空, 天然就出问题了 
        Sleep(100);//若利用Sleep, 则能正常工作 
    }    

void main() 

    _beginthread(update,0,NULL); 
    Sleep(1000); 
    cvNamedWindow("test"); 
    for(;;) 
    { 
        //判空(省略)         
        imshow("test",*frame); 
        waitKey(100); 
    } 
    waitKey(0); 
}  

OpenCV:waitKey函数

文章插图

4应用:
#include < opencv2/highgui/highgui.hpp >
#include < iostream >
#include < Windows.h >
using namespace cv;
using namespace std;
int main()
{
       Mat im;
       double duration;
       im = imread("lena.jpg",0);
       // 测试没有namedWindow时的waitKey执行时候
       duration = static_cast<double>(getTickCount());

推荐阅读