以前写代码出现异常是F10看变量找错误。现在用opencv库,出现异常信息太有限了,不知道如何去处理,试了好多程序都是异常中断。
比如这段代码异常找错呢?
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
void meanStdDev_test()
{
const char* imagename = "boy";
//产生灰度图
Mat img = imread(imagename);
Mat gray, color;
cvtColor(img, gray, CV_RGB2GRAY);
cout << "Channel: " << gray.channels() << endl;
Mat tmp_m, tmp_sd;
double m = 0, sd = 0;
m = mean(gray)[0];
cout << "Mean: " << m << endl;
meanStdDev(gray, tmp_m, tmp_sd);
m = tmp_m.at<double>(0, 0);
sd = tmp_sd.at<double>(0, 0);
cout << "Mean: " << m << " , StdDev: " << sd << endl;
}
int main() {
meanStdDev_test();
waitKey();
}
下面找C:/build/...没这个路径啊?
方法一:下载opencv源码,使用opencv的debug版dll(最好附带有pdb文件),调试模式下进入崩溃处,在弹出查找cpp文件的对话框中指定刚解压的opencv源代码文件路径。
方法二:下载opencv源代码,使用功能cmake生成vs项目,自己编译得到lib,dll,pdb。同上。
这两个方法其实是一样的就是附带源码的调试,可以非常清晰的查看崩溃地方上下文。