在下面的代码中,我创建了一个循环,该循环一直运行直到按下'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>
...
}
}
最佳答案
另一个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*/
...
}
关于c++ - 暂停时编辑轨迹栏值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10445898/