我已经编译并链接了以下示例示例源 成功。在 Ubuntu 16.03 中,将用户输入到组视频后开始工作。我在 18.04 中做了同样的事情,但程序立即退出。
我尝试调试代码,发现问题出在 waitKey 上。如果我更改
if(waitKey(30) >= 0) break;
到
waitKey(30);
它可以工作,但不正确。如何正确更改代码?
答案1
显然,API 实现从 2.4.9 更改为 3.2,因此需要更正示例。
在版本 2.4.9 中,如果在 x 毫秒内未按下任何键,则返回 -1
在版本 3.2 中,如果在 x 毫秒内未按下任何键,则返回 255
因此对我来说两个版本的代码如下所示:
int k; // key
k=waitKey(30);
if( 255!=k && -1!=k )
break;