首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何抑制OpenCV错误消息

如何抑制OpenCV错误消息
EN

Stack Overflow用户
提问于 2013-07-10 10:04:40
回答 1查看 6.4K关注 0票数 12

我正在使用g++和OpenCV2.4.6编写一个OpenCV项目

我有一些这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try 
{
    H = findHomography( obj, scene, CV_RANSAC );
}
catch (Exception &e)
{
    if (showOutput)
        cout<< "Error throwed when finding homography"<<endl;
    errorCount++;
    if (errorCount >=10)
    {
        errorCount = 0;
        selected_temp = -99;
        foundBB = false;
        bb_x1 = 0;
        bb_x2 = 0;
        bb_y1 = 0;
        bb_y2 = 0;
    }
    return -1;
}

当findHomography找不到东西时,会抛出错误。错误消息包括:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OpenCV Error: Assertion failed (npoints >= 0 && points2.checkVector(2) 
== npoints && points1.type() == points2.type()) in findHomography, 
file /Users/dji-mini/Downloads/opencv- 2.4.6/modules/calib3d/src/fundam.cpp, 
line 1074
OpenCV Error: Assertion failed (count >= 4) in cvFindHomography, 
file /Users/dji-mini/Downloads/opencv-2.4.6/modules/calib3d/src/fundam.cpp, line 235

因为我知道在什么情况下会出现消息,所以我想取消显示这些错误消息。但我不知道该怎么做。

在旧版本的OpenCV中,似乎有一个"cvSetErrMode",根据其他文章,它在OpenCV 2.X中已经贬值了。那么我可以使用什么函数来抑制OpenCV错误消息呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-10 16:06:17

每次发生断言失败时都会调用cv::error()。默认行为是将断言语句输出到std::cerr

您可以使用未公开的cv::redirectError()函数来设置自定义错误处理回调。这将覆盖cv::error()的默认行为。您首先需要定义一个自定义的错误处理函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int handleError( int status, const char* func_name,
            const char* err_msg, const char* file_name,
            int line, void* userdata )
{
    //Do nothing -- will suppress console output
    return 0;   //Return value is not used
}

然后在抛出的代码之前设置回调:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    cv::redirectError(handleError);

try {
    // Etc...

如果您希望在任何时候恢复默认行为,可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cv::redirectError(nullptr);    //Restore default behavior; pass NULL if no C++11
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17567808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文