OpenCV - 禁用打印例外

时间:2015-03-03 20:35:09

标签: c++ opencv error-handling

我在OpenCV中很新,但现在我需要抓住cv:Exception。我试着抓住阻止:

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

效果很好,我可以抓住异常。但异常消息写入两次。一个来自opencv库,另一个来自我。

有没有办法禁止从opencv发送消息到stderr?我发布了版本 - 将VS2013更改为Release并删除&#34; d&#34;来自所有图书馆的名称。但它仍然写了两次。

1 个答案:

答案 0 :(得分:3)

您可以使用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())