openCV中waitKey函數介紹


#include < opencv2/highgui/highgui.hpp >

#include iostream >

#include < Windows.h >

using namespace cv;

using namespace std;

 

int main()

{

    Mat im;

    double duration;

    im = imread("D:\\Document\\pictures\\Lena.bmp",0);

 

    // 測試沒有namedWindow時的waitKey執行時間

    duration = static_cast<</span>double>(getTickCount());

    waitKey(10000);

    duration = static_cast<</span>double>(getTickCount())

             - duration;

    duration /= getTickFrequency();

    cout <<"第一個waitKey運行時間爲:" << duration

          << 's' << endl;

 

    namedWindow("Lena");

    imshow("Lena",im);

 

    // 測試有namedWindow時的waitKey執行時間

    duration = static_cast<</span>double>(getTickCount());

    waitKey(10000);

    duration = static_cast<</span>double>(getTickCount())

             - duration;

    duration /= getTickFrequency();

    cout <<"第二個waitKey運行時間爲:" << duration

          << 's' << endl;

 

    Sleep(20000);

    return 0;

執行結果如下:

openCV中waitKey函數介紹

         從執行結果可以看出,第一個結果並未如期執行,第二個結果如期執行了。這是因爲waitKey僅對窗口機制起作用,即namedWindow產生的窗口。若在此之前沒有產生窗口,則waitKey相當於未執行。

 

waitKey有兩個作用:

1. It waits for x milliseconds for a key press. If a key was pressed during that time, it returns the key's ASCII code. Otherwise, it returns -1.

2It handles any windowing events, such as creating windows with cv::namedWindow(), or showing images with cv::imshow().

 

    格式:

waitKey(x);

第一個參數: 等待x ms,如果在此期間有按鍵按下,則立即結束並返回按下按鍵的

ASCII碼,否則返回-1

如果x=0,那麼無限等待下去,直到有按鍵按下

 

         另外,在imshow之後如果沒有waitKey語句則不會正常顯示圖像。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章