2016-07-24 81 views
1

我剛剛開始使用OpenCv 3.1並遇到以下惱人的行爲。每當我做出imshow的初始呼叫(實際上cv2.imshow,因爲我使用了Python接口),我得到這個輸出到我的屏幕:如何停止打電話給qDebug opencv?

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,或者只是關閉調試信息,除非我主動需要它?

回答

1

qDebug是一個預處理器控制的,但它有它自己的特殊宏,QT_NO_DEBUG_OUTPUT。如果您將其添加到您的發佈版本定義,它將被刪除。