我刚开始使用 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,或者只是关闭调试信息,除非我主动想要它?
最佳答案
qDebug
是预处理器控制的,但它有自己的特殊宏,QT_NO_DEBUG_OUTPUT
。如果您将其添加到您的发布构建定义中,它将被删除。
关于python - 如何阻止 opencv 调用 qDebug?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38553902/