[問題] 關於OpenCV鍵盤事件的疑問(waitKey())
看板C_and_CPP (C/C++)作者hotrain13 (最幸運的人!!)時間10年前 (2016/03/09 10:59)推噓6(6推 0噓 2→)留言8則, 5人參與討論串1/2 (看更多)
開發平台(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
推
03/09 12:14, , 1F
03/09 12:14, 1F
推
03/09 15:09, , 2F
03/09 15:09, 2F
感謝,把它複雜了><
不過還有一個問題想請教一下
我的程式碼大概如下
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
推
03/09 15:36, , 3F
03/09 15:36, 3F
推
03/09 16:32, , 4F
03/09 16:32, 4F
感激不盡,程式碼如下:
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
推
03/10 07:52, , 5F
03/10 07:52, 5F
改成waitKey(100)就可以了,可能是鍵盤的沒船那麼那麼快@@
感激不盡!
→
03/10 10:43, , 6F
03/10 10:43, 6F
寫在for面的話,如果圖更新到一半有按鍵它就會直接跳出重新繪圖
我是希望可以整張圖繪完,有按鍵在重新繪圖
沒有按鍵就一直會原本的圖
推
03/10 16:40, , 7F
03/10 16:40, 7F
→
03/10 16:40, , 8F
03/10 16:40, 8F
抱歉>< ,不是很懂你的意思?
※ 編輯: hotrain13 (140.130.9.102), 03/10/2016 18:31:59
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章