Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cvWaitKey()不工作?_C_Opencv - Fatal编程技术网

cvWaitKey()不工作?

cvWaitKey()不工作?,c,opencv,C,Opencv,我正在看书。作者清楚地解释了这个功能。问题是我的程序没有检测到任何按下的键,所以我无法终止窗口或停止循环。这是问题的一部分 while(1) { frame = cvQueryFrame( capture ); if ( !frame ) break; cvShowImage("Example2", frame); char c = cvWaitKey(33); if ( c

我正在看书。作者清楚地解释了这个功能。问题是我的程序没有检测到任何按下的键,所以我无法终止窗口或停止循环。这是问题的一部分

 while(1)
    {   
        frame = cvQueryFrame( capture );
        if ( !frame ) 
            break;
        cvShowImage("Example2", frame);
        char c = cvWaitKey(33);
        if ( c == 27 ) 
        {   
            printf("Yes");
            break; // 27 == escape button
        }
    }

我正在使用Mac(我正在从终端运行程序)。

可能有两种可能性

  • 按键时焦点不在cv窗口上

  • 尝试使用just,cvWaitKey()


当您使用
cvWaitKey(X)
时,程序会等待X毫秒,等待您按键。您没有给它足够的时间来检测按键。有关详细信息,请参阅。@scap3y,即使我增加了延迟时间,
if(c==27)
也根本不起作用。这就是为什么我将
放在“Yes”
中,表示我已按下按钮。我已将其设置为
cvWaitKey(10000)
,没有希望。这就是为什么我对这些不能正常工作的琐碎东西感到震惊的原因。@CroCo您是否尝试了exit()而不是break?当“Example2”窗口聚焦时,您必须按下一个键。当终端聚焦时,您是这样做还是按键?您能从代码中的另一行打印其他内容吗?cvWaitKey()等于cvWaitKey(0),所以只需等待按键。