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());

猜你喜歡