【问题标题】:OpenCV - disable print ExceptionsOpenCV - 禁用打印异常
【发布时间】:2015-05-04 16:05:48
【问题描述】:

我是 OpenCV 的新手,但现在我需要 catch cv:Exception。我做了 try and catch 块:

try{
    //do some opencv things
}
catch (cv::Exception& e){
    cout << "OpenCV error: " << endl << e.what();
    cin.get();
}

效果很好,我可以捕获异常。但是异常消息被写入两次。一个来自 opencv 库,第二个来自我。

有没有办法禁止从 opencv 向stderr 发送消息?我制作了发布版本 - 将 VS2013 更改为 Release 并从所有库的名称中删除了“d”。但是还是写了两次。

【问题讨论】:

    标签: c++ opencv error-handling


    【解决方案1】:

    您可以使用cvRedirectError 覆盖 OpenCV 的默认错误处理。

    你可以使用它like this:

    int myErrorHandler(int status, const char* func_name, const char* err_msg, 
                       const char* file_name, int line, void*)
    {
        // Do whatever you want here
        return 0;
    }
    
    cvRedirectError(myErrorHandler); ///< Call this once somewhere
    

    这是恢复默认行为的方式:

    cv::redirectError(cv::ErrorCallback())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多