Opencv 错误捕捉

opencv出错捕捉详细见 opencv中文官网介绍,这里给出一个大概使用过程。

1.使用默认opencv自带的回调函数是直接返回0,所以要定义自己的错误回调函数。以下是示例:

 int my_cvStdErrReport( int status, const char* func_name, const char* err_msg,
                          const char* file_name, int line, void* userdata )
{
   CString outString;
   //状态由数字转化为语言提示 
   const char *status_char=cvErrorStr(status);//这里可以自己定义转换函数。
   if(status_char)
 outString.Format("出错原因:%s  ",status_char);
  
  ……

 把其他信息添加到CString里面

 ……
   //MFC下面弹出提示框
   AfxMessageBox(outString);

  //最好添加错误处理,否则只是弹出提示,程序还是出问题。
   return 1;//返回值跟后续Opencv处理有关。还需要补充
}


2.在程序开始要捕捉错误的时候添加函数,例如在 OnInitDialog() 里面添加如下函数:

   //设置错误捕捉模式
   cvSetErrMode(CV_ErrModeParent);
   //设置错误时的回调函数
    cvRedirectError(my_cvStdErrReport);


上面的操作就完成一个简单的opencv错误捕捉。


参考资料:Cxcore错误处理和系统函数

http://www.opencv.org.cn/index.php/Cxcore%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E5%92%8C%E7%B3%BB%E7%BB%9F%E5%87%BD%E6%95%B0#RedirectError

展开阅读全文

没有更多推荐了,返回首页