OpenCV构建正常,调试抛出错误,从.exe运行良好

OpenCV Build ok, debug throws error, runs fine from .exe

本文关键字:exe 运行 错误 构建 调试 OpenCV 出错      更新时间:2023-10-16

使用Visual Studio 2010、OpenCV 2.2.2、Windows 7 64x

我的代码成功构建,然后当它进入调试时,我得到以下错误:

First-chance exception at 0x75f0c41f in MachineVisionHW0.exe: Microsoft C++ exception: cv::Exception at memory location 0x002dec90..
Unhandled exception at 0x75f0c41f in MachineVisionHW0.exe: Microsoft C++ exception: cv::Exception at memory location 0x002dec90..

然后我结束调试,转到文件目录并运行构建的可执行文件,它运行良好。有人知道怎么解决这个问题吗?它并没有阻止我构建代码,但它非常不方便。我将在下面包含一个执行此操作的代码示例。

int main(){
    cv::Mat image1 = cv::imread("img1.JPG", CV_LOAD_IMAGE_GRAYSCALE);
    cv::namedWindow("Sample1");
    cv::imshow("Sample1", image1);
    cv::waitKey(0); 
    return 1;
}

在main之前是否得到未处理的异常

如果没有,那么您的代码正在以某种方式引发异常。在第一行上放一个断点,然后点击F5,然后在断点处一次,一次一行地遍历代码,看看是哪一个导致了异常,F10键执行此操作。

我的直觉是,当从调试器运行时,cv::imread失败了,因为它没有从预期的位置找到img1.jpg,当前的工作目录是解决方案文件的目录,而不是调试输出构建目录的目录。你可以做一个快速测试,将img1..jpg复制到包含sln文件的目录中,看看这是否解决了问题。