检查窗口是否存在于Opencv + Qt中时出错

时间:2019-02-28 06:53:21

标签: c++ qt opencv

我正在使用opencv3.4.3和Qt5.11.3, 我需要检查任何Opencv窗口是否存在,然后将其关闭。

这是我的代码:

debug

当不存在任何窗口时,出现此错误:

  

OpenCV:终止处理程序被调用!最后一个OpenCV错误是:   OpenCV(3.4.3)错误:cvGetPropVisible_QT中的空指针(NULL guiReceiver(请创建一个窗口)),文件C:\ OpenCV_Source \ opencv \ sources \ modules \ highgui \ src \ window_QT.cpp,第143行

这是Opencv关于“ WND_PROP_VISIBLE”标志的评论:

  

WND_PROP_VISIBLE = 4 //!<检查窗口是否存在并且可见

根据此描述,OpenCV会检查窗口的存在,因此如果关闭该窗口怎么会产生错误?

我的代码有什么错误吗?

1 个答案:

答案 0 :(得分:0)

如果窗口名称不正确,此函数将返回null。如果具有该名称的窗口不可用,则此函数将返回null。

CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
{
   if (!name)
      return -1;
...
}

我用代码解决了我的问题:

int tmp;
tmp = waitKey(100);
if(tmp!=-1)
   destroyWindow("mywindow");