看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): VC++ 額外使用到的函數庫(Library Used):OpenCV 各位前輩好,我有一個問題想請教一下 現在用OpenCV,現在用到waitKey()來抓鍵盤 可是只要跑到這裡,程式就會暫停等按鍵 有什麼方法可以一直在while(1)裡面等待鍵盤,沒有按鍵程式還是會一直跑的方法?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.130.9.102 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1457492347.A.F3C.html ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 10:59:25
n666160: 試試看waitKey(1)是不是你要的 03/09 12:14
suwako: waitKey的參數可以決定等待的時間 03/09 15:09
感謝,把它複雜了>< 不過還有一個問題想請教一下 我的程式碼大概如下 while(1){ while(1){ for(){ 程式碼; } waitKey(1); //然後BREAK } } 有時候他會偵測不到按鍵,是因為太快嗎? ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 15:17:15 ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 15:17:56
suwako: 建議你貼上完整一點的程式碼 比較能找出問題 03/09 15:36
VSei: if ( cvWaitKey(27) >=0 ) { break; } 03/09 16:32
感激不盡,程式碼如下: while(1){ . . . while (1){ //希望可以退出這個迴圈 for (int q = 30; q < 149; q++) { cvShowImage("image", Image); for (int w = 0; w < 4000; w+) { FillRectangle(XYZ_New[q][w][0], XYZ_New[q][w][1], XYZ_New[q][w][2]); } Delay_DoEvents(0.001); } key = waitKey(1); //有時候抓不到 printf("%d\n", key); if (key == '1') { Pointx = Pointx + 10; break; } else if (key == '2') { Pointx = Pointx - 10; break; } } } ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 18:52:36 ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 18:53:25 ※ 編輯: hotrain13 (140.130.9.102), 03/09/2016 18:55:50
suwako: 我自己簡單測試了一下 沒有抓不到的問題阿 03/10 07:52
改成waitKey(100)就可以了,可能是鍵盤的沒船那麼那麼快@@ 感激不盡!
bdvstg: 為什麼waitKey不寫在回圈內 印象中畫面需要waitKey來更新 03/10 10:43
寫在for面的話,如果圖更新到一半有按鍵它就會直接跳出重新繪圖 我是希望可以整張圖繪完,有按鍵在重新繪圖 沒有按鍵就一直會原本的圖
storm654321: waitKey 要拿來抓有沒有按按鍵不是嗎?@@不是一定要擺 03/10 16:40
storm654321: 嗎? 03/10 16:40
抱歉>< ,不是很懂你的意思? ※ 編輯: hotrain13 (140.130.9.102), 03/10/2016 18:31:59