c语言中cv的作用,c ++ - OpenCV的cvWaitKey()函数有什么作用?

c ++ - OpenCV的cvWaitKey()函数有什么作用?

在执行cvWaitKey()期间会发生什么? 什么是典型的用例? 我在OpenCV参考中看到过,但文档的确切用途并不明确。

Simplicity asked 2019-06-21T01:44:51Z

9个解决方案

120 votes

cv::imshow()做了两件事:

在OpenCV窗口上按键按下等待x毫秒(即从cv::imshow()创建)。 请注意,它不会在stdin上侦听控制台输入。 如果在此期间按下了某个键,它将返回该键的ASCII码。 否则,它返回cv::waitKey(30).(如果x为零,则无限期等待按键。)

它处理任何窗口事件,例如使用cv::imshow()创建窗口,或使用cv::waitKey(30)显示图像。

opencv新手的一个常见错误是在循环中通过视频帧调用cv::imshow(),而不用cv::waitKey(30)跟踪每次抽奖。在这种情况下,屏幕上不显示任何内容,因为highgui从未给予时间来处理来自cv::imshow()的抽取请求。

SuperElectric answered 2019-06-21T01:45:29Z

16 votes

简单,cvWaitKey()睡眠X毫秒,等待按任何键。

int cvWaitKey(int X);

如果按下某个键,则此函数返回密钥的ASCII代码。 如果在此期间没有按下任何键,则返回-1。

karlphillip answered 2019-06-21T01:46:02Z

12 votes

k停止您的程序,直到您按下按钮。

k不会停止您的程序,但会在按下按钮时唤醒并提醒您结束程序。 它用于循环,因为cvWaitkey不会停止循环。

正常使用

char k;

k=cvWaitKey(0);

if(k == 'ESC')

使用k,您可以看到按下了哪个键。

Jorge Vega Sánchez answered 2019-06-21T01:46:50Z

8 votes

注意任何可能遇到cvWaitKey( )功能问题的人。 如果您发现cvWaitKey(x)没有等待,请确保您实际打开一个窗口(即cvNamedWindow(...))。 在任何cvWaitKey()函数调用之前放置cvNamedWindow(...)声明。

Andy answered 2019-06-21T01:47:18Z

7 votes

。 参数while(cv::waitKey(1) != 27); // 27 = ascii value of ESC被解释为infinite

。 为了拖动highGUI窗口,您需要不断调用while(cv::waitKey(1) != 27); // 27 = ascii value of ESC函数。 例如,对于静态图像:

while(cv::waitKey(1) != 27); // 27 = ascii value of ESC

while(cv::waitKey(1) != 27); // 27 = ascii value of ESC

answered 2019-06-21T01:48:04Z

5 votes

/* Assuming this is a while loop -> e.g. video stream where img is obtained from say web camera.*/

cvShowImage("Window",img);

/* A small interval of 10 milliseconds. This may be necessary to display the image correctly */

cvWaitKey(10);

/* to wait until user feeds keyboard input replace with cvWaitKey(0); */

enthusiasticgeek answered 2019-06-21T01:48:24Z

4 votes

33只是提供了一些延迟。 例如:

char c = cvWaitKey(33);

if( c == 27 ) break;

这是我的代码的一部分,其中一个视频加载到openCV和输出的帧。 代码中的33数字表示在33ms之后,将显示一个新帧。 因此,在屏幕上显示的每个帧之间的间隔或时间间隔为33ms。希望这可以帮助。

sue-ling answered 2019-06-21T01:49:01Z

1 votes

cvWaitKey(milliseconds)只需等待作为键盘下一键击键参数提供的毫秒数。

人眼不能在不到1/10秒的时间内看到物体移动,所以我们使用它在屏幕上保持相同的图像帧一段时间。 一旦按下键盘键,就会执行下一个操作。

简而言之cvWaitKey(milliseconds)等待按键或millisecond提供的时间。

Pravin Dahale answered 2019-06-21T01:49:45Z

-1 votes

等待毫秒来检查按键是否被按下,如果在该间隔中按下则返回其ascii值,否则它仍为-1

Yassine Abdul-Rahman answered 2019-06-21T01:50:15Z

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值