最近尝试做一个视频播放器,其中二倍速想要通过改变一个在自定义线程中使用的waitkey函数的等待时间来实现。
但在实际使用时发现,无论怎么改变线程中waitkey函数参数,线程运行函数都不会按照指定的时间进行阻塞。
在查阅资料后得知,waitkey函数只可在HIGHGUI窗口中使用,简单来说就是只能在例如cvNameWindow创建的窗口,或Qwidget等窗口类的函数中使用。在没有界面的自定义线程中,会跳过waitkey函数不执行。
以下为官方文档的翻译:
函数waitKey和pollKey是HighGUI中唯一可以获取和处理GUI事件的方法,因此需要定期调用其中一个函数以进行正常的事件处理,除非HighGUI在负责事件处理的环境中使用。
仅当至少创建了一个HighGUI窗口且该窗口处于活动状态时,该函数才起作用。如果有几个HighGUI窗口,其中任何一个都可以处于活动状态。
以下为官方文档链接:waitKey()
本人还是学生,有任何问题欢迎大家指正!