我刚开始使用OpenCv 3.1并遇到了以下恼人的行为。每当我初次调用imshow
(实际上cv2.imshow
时,因为我使用的是Python界面),我将此输出发送到我的屏幕:
init done
opengl support available
这似乎是由于window_QT.cpp中的以下方法:
static int icvInitSystem(int* c, char** v)
{
//"For any GUI application using Qt, there is precisely one QApplication object"
if (!QApplication::instance())
{
new QApplication(*c, v);
setlocale(LC_NUMERIC,"C");
qDebug() << "init done";
#ifdef HAVE_QT_OPENGL
qDebug() << "opengl support available";
#endif
}
return 0;
}
我能想到的就是注释掉qDebug调用并重新编译OpenCV。是否有任何不那么激烈的解决方案可以自动将qDebug的输出重定向到stderr,或者只是关闭调试信息,除非我主动想要它?
答案 0 :(得分:1)
qDebug
是一个预处理器控制的,但它有自己的特殊宏QT_NO_DEBUG_OUTPUT
。如果将其添加到Release构建定义中,它将被删除。