【问题标题】:imshow doesnt update on qt guiimshow 不会在 qt gui 上更新
【发布时间】:2016-07-11 18:37:21
【问题描述】:

所以我有一个程序,我在其中使用 OpenCV 库进行一些处理,然后在 Qt 制作的 gui(在小部件上)中显示结果。问题是,如果我想在 gui 中“调试”opencv 实现,即对一些帧/掩码进行 imshow,它会创建窗口但不会刷新它,除非偶尔刷新。 尝试添加 waitKey(1) 来强制刷新只会冻结 gui,因此它是另一个死胡同。

关于如何解决这个问题的任何想法?如果需要,我会尝试做一个 MWE,但我的程序状态有点难以提取功能。

提前致谢。

【问题讨论】:

  • 要让 Qt GUI 响应,主线程的事件循环必须具有控制权。如果没有,则 GUI 没有响应。就是这样,通常。任何像waitKey 这样的阻塞方法,或者Qt 本身以waitFor 开头的任何东西,都不能在主线程中使用!
  • 所以没有办法更新imshows? ://
  • 当然有:不要使用waitKey 等。如果您希望对 gui 中的按键做出反应,请使用按钮、全局加速器或全局事件过滤器。

标签: c++ qt opencv opencv3.0


【解决方案1】:

嗯,好像是在做一个

QApplication::ProcessEvents() 

强制更新图像,虽然速度很慢,但出于调试目的,它就足够了。

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多