捕获/禁止发送到std :: cout的OpenCV警告

时间:2018-08-16 19:18:08

标签: c++ opencv

安装摄像机并为VideoCapture提供未映射的int DeviceID时,OpenCV输出(请注意std::coutUnable to stop the stream: Invalid argument。)

我如何捕捉/抑制呢?

1 个答案:

答案 0 :(得分:1)

您可以使用cv::redirectError函数自己处理任何消息(例如断言)。例如,要使输出静音,可以使用以下代码:

#include <opencv2/opencv.hpp>

int dummy_error_handler(int status
    , char const* func_name
    , char const* err_msg
    , char const* file_name
    , int line
    , void* userdata)
{
    //Do nothing -- will suppress console output
    return 0;   //Return value is not used
}

void set_dummy_error_handler()
{
    cv::redirectError(dummy_error_handler);
}

void reset_error_handler()
{
    cv::redirectError(nullptr);
}

注意:如果实际消息来自其他来源,例如OpenCV使用的第三方库,则将需要采用其他方法。