2016-07-24 3 views
1

Я только начал использовать OpenCv 3.1 и столкнулся с следующим раздражающим поведением. Всякий раз, когда я делаю первоначальный вызов imshow (на самом деле cv2.imshow, так как я использую интерфейс Python), я получаю этот выход на мой экран:Как я могу остановить opencv от звонков в qDebug?

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. Если вы добавите это в свою версию сборки сборки, она будет удалена.

Смежные вопросы