2012-05-04 26 views
0

在下面的代碼中,我創建了一個循環,它一直運行直到按下「q」。我正在使用trackbars設置2個變量。不過,我想創建某種停頓來設置這些軌道條,然後再運行此循環。但是,getch()函數會凍結整個程序,直到我按下一個鍵並且不允許我編輯軌道條。是否有可能創建某種停頓讓我可以編輯軌道條?在暫停時編輯軌跡條的值

int main(int argc, const char * argv[]) 
{ 
    cvNamedWindow("test image", CV_WINDOWS_AUTOSIZE); 
    cvCreateTrackbar("subject", "test image", &subjectID, 40, NULL); 
    cvCreateTrackbar("subject", "test image", &photoID, 10, NULL); 
    ... 
    <some more code> 
    ... 

    while(key != 'q') 
    { 
     cout << "set trackbars and press enter"; 
     getch() 
     ... 
     <and more code> 
     ... 
    } 
} 

回答

1

另一個while循環和cv :: waitKey()應該做的。

cout << "set trackbars and press enter"; //you might want to put this inside the loop 
while (true) { 
      int c = waitKey(10); 
      if(c == 13) { break; } 
     } 

while(key != 'q') 
{ 
    ... 
    /*all your code*/ 
    ... 
} 
+0

Mja of course:p爲什麼在我實施解決方案時嘗試這種方式已經很困難了。只需要像你推薦的那樣擴展^^,謝謝 – pimmes111