python - 如何阻止 opencv 调用 qDebug?

标签 python c++ opencv

我刚开始使用 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/

相关文章:

python - 所有中心都在 K-Means 聚类上重合

python - Dato-Graphlab 检查 Edge 是否存在

python - OpenCV CascadeClassifier Python 内存不足

python - Google Appengine 发送电子邮件 : [Error] unauthorized sender

python - int.from_bytes() 是如何计算的?

c++ - 类的 index_sequence 用法

c++ - 使用 iostreams 读取文件的一部分

c++ - 兰德函数,生成 3 个值的概率(对于简单的老虎机)?

python - 无法在 python 的 videoWriter 模块中使用 opencv 保存视频

opencv - 识别 Talmud 页面上的文本区域