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错误处理和系统函数