我正在使用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会检查窗口的存在,因此如果关闭该窗口怎么会产生错误?
我的代码有什么错误吗?
答案 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");