2012-05-04 4 views
0

以下のコードでは、 'q'が押されるまで実行を続けるループを作成しました。私は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 ofcourse:私が解決策を既に実装したときに難しい方法を試してみましょう。とにかくあなたが^^のようにそれを拡張しなければならなかった – pimmes111

関連する問題