opencv waitKey() 函数理解及应用
waitKey僅對窗口機(jī)制起作用,即namedWindow產(chǎn)生的窗口。若在此之前沒有產(chǎn)生窗口,則waitKey相當(dāng)于未執(zhí)行。
?注:namedWindow產(chǎn)生的窗口: namedWindow()+imshow() ? ?或者 ? 只有imshow() 都是可以的。此時(shí)imshow()在waitKey()之前,否則也是不起作用的。
?
openv中對cvWaitkey函數(shù)的定義如下:
int cvWaitKey( int delay=0 )
返回值為int型,函數(shù)的參數(shù)為int型,當(dāng)delay小于等于0的時(shí)候,如果沒有鍵盤觸發(fā),則一直等待,此時(shí)的返回值為-1,否則返回值為鍵盤按下的碼字;當(dāng)delay大于0時(shí),如果沒有鍵盤的的觸發(fā),則等待delay的時(shí)間,此時(shí)的返回值是-1,否則返回值為鍵盤按下的碼字。
?
另外,在imshow之后如果沒有waitKey語句則不會正常顯示圖像。
附:?
int c=cv::waitKey(0);
if((char)c==27)//27:Esc//>a
break;
if((char)c=='r')//>b
以上>a和>b中(char)加與不加都是等價(jià)的!
?
注意:在按鍵時(shí)首先要點(diǎn)擊namedWindow()所在窗口,
否則點(diǎn)擊按鍵無效。
#include<opencv2\highgui\highgui.hpp> #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {int c = 0;namedWindow("output", CV_WINDOW_AUTOSIZE); //沒有此句代碼,則waitKey不起作用while (true){c = waitKey(10000);if (c == 27) //ESC{cout << "esc" << endl;break;}cout << c << endl;}return 0; }參考自https://www.cnblogs.com/ttzm/p/5418791.html
總結(jié)
以上是生活随笔為你收集整理的opencv waitKey() 函数理解及应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第k个数组中的最小值
- 下一篇: ssd训练自己数据集