简体   繁体   中英

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

Using Visual Studio 2010, OpenCV 2.2.2, Windows 7 64x

My code builds successfully then when it goes into debug I get the following error:

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..

Then I end debug, go to the file directory and run the built executable and it runs fine. Does anybody know how to fix this? It isn't keeping me from building my code, but it is incredibly inconvenient. I will include an example of the code that is doing this below.

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;
}

Do you get the unhandled exception before main?

If not, then your code is somehow doing something to raise the exception. Put a breakpoint on the first line, then hit F5, then once at the breakpoint, step through the code one line at a time to see which one causes the exception, F10 key to do this.

My gut feeling is that when running from the debugger, the cv::imread is failing since it is not finding the img1.jpg from the expected location, the current working directory is that of the solution file, not of the debug output build dir. You can do a quick test and copy the img1.jpg to the dir containing the sln file and see if that fixes the problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM