Installation of OpenCV 2.4.5 on Visual Studio 2008

2020-02-11 06:10发布

问题:

I'm having some difficulties trying to use OpenCV with visual studio 2008 (Professional Edition). I believe I've done everything necessary to run a OpenCV sample, but it crashes due to a run-time error. This is driving me insane, I hope someone can help.

But first things first.

My Installation Procedure

  1. Downloaded OpenCV 2.4.5 from sourcefourge.net.

  2. When prompted, I chose "Z:\Games instalados\OpenCV" as my "Extract to" option in the .exe downloaded from the above link.

  3. Went to "Control Panel" -> "System" -> "Advanced System Settings", then clicked on the "Environment Variables" in the "Advanced" tab. In the "System Variables" box I highlighted "Path" and clicked on "Edit...". In the new window I added to the end of the text in "Variable Value" my installation directory with a ";" before it, namely ";Z:\Games instalados\OpenCV\opencv\build\x86\vc11\bin" (without the double quotes). Here's a screenshot: .

  4. Created a new project in Visual Studio 2008: File -> New -> Project..., chose "Other Languages" -> "Visual C++ -> "Win32" as the project type; "Win32 Console Application" as the template. Clicked "next" in the new window, then chose "Console Application", "Empty Project" and then "Finish".
  5. In the "Solution Explorer", right-clicked my program and chose "Properties". Then "Configuration Properties" -> "C/C++" -> "General", and on Additional Include Directories I've added:
    • Z:\Games instalados\OpenCV\opencv\build\include
    • Z:\Games instalados\OpenCV\opencv\build\include\opencv
    • Z:\Games instalados\OpenCV\opencv\build\include\opencv2 "
  6. Now in "Configuration Properties" -> "C/C++" -> "Linker" -> "General", in the "Additional Library Directories" I've added "Z:\Games instalados\OpenCV\opencv\build\x86\vc11\lib".
  7. Now in "Configuration Properties" -> "C/C++" -> "Linker" -> "Input", in the "Additional Dependencies" I've added:
    • opencv_calib3d245.lib
    • opencv_contrib245.lib
    • opencv_core245.lib
    • opencv_features2d245.lib
    • opencv_flann245.lib
    • opencv_gpu245.lib
    • opencv_highgui245.lib
    • opencv_imgproc245.lib
    • opencv_legacy245.lib
    • opencv_ml245.lib
    • opencv_nonfree245.lib
    • opencv_objdetect245.lib
    • opencv_photo245.lib
    • opencv_stitching245.lib
    • opencv_superres245.lib
    • opencv_ts245.lib
    • opencv_video245.lib
    • opencv_videostab245.lib
    • opencv_calib3d245d.lib
    • opencv_contrib245d.lib
    • opencv_core245d.lib
    • opencv_features2d245d.lib
    • opencv_flann245d.lib
    • opencv_gpu245d.lib
    • opencv_highgui245d.lib
    • opencv_imgproc245d.lib
    • opencv_legacy245d.lib
    • opencv_ml245d.lib
    • opencv_nonfree245d.lib
    • opencv_objdetect245d.lib
    • opencv_photo245d.lib
    • opencv_stitching245d.lib
    • opencv_superres245d.lib
    • opencv_ts245d.lib
    • opencv_video245d.lib
    • opencv_videostab245d.lib (Please note that I didn't added "opencv_ffmpeg245.lib", despite what the screenshot shows).
  8. Right-clicked "Source Files" -> "Add" -> "Existing Item" and added the "Z:\Games instalados\OpenCV\opencv\samples\cpp\cout_mat.cpp" file.

The Problem

  1. Built the project, no problems here, "Build succeeded".
  2. "Debug" -> "Start Debugging". The following appears: The error http://s8.postimg.org/wdkubk5o3/the_error.jpg Full size image for the error: http://s8.postimg.org/wdkubk5o3/the_error.jpg

I've also tried with the hough lines sample, but it didn't worked as well (even with the image in the same folder as the .exe imread() wouldn't find the image).

Any help would be greatly appreciated.

If I've not made some of the installation steps clear enough, please post a comment.

Reason this question is suited for stackoverflow.com

I've detailed a full installation procedure (from scratch) for the latest release of OpenCV to be used with Visual Studio 2008. If anyone solves this question we will have a complete, working tutorial for anyone having the same necessity (use latest OpenCV with visual studio 2008), and possibly (because of the depth in the installation procedure) a general guide for installing the latest OpenCV with most Visual Studio versions (not just the 2008, since the tutorial wouldn't change much, and the reader could easily adapt it).

回答1:

I would suggest if you want to test proper installation of opencv. Just load a simple.jpg image in opencv and display it. If this works then you can start debugging the program which is crashing. You can debug it by successively enabling the cout. May be first just enable the default cout in example cout_mat.cpp and comment rest of it.
Here is the simple load program you can try to test your installation.

int main(int argc, char*argv[])
{

    cvNamedWindow("My_Win", CV_WINDOW_AUTOSIZE);
    IplImage *img = cvLoadImage("C:\\vid_an2\\Desert.jpg", CV_LOAD_IMAGE_UNCHANGED );

    std::cout<<"Info About Image"<<std::endl;

    std::cout<<"Size of Image "<<img->nSize<<std::endl;
    std::cout<<"Image channels "<<img->nChannels<<std::endl;
    std::cout<<"Image Width "<<img->width<<std::endl;
    std::cout<<"Image Height "<<img->height<<std::endl;
    std::cout<<"Image Depth "<<img->depth<<std::endl;
    std::cout<<"Image WidhtStep "<<img->widthStep<<std::endl;
    std::cout<<"Image Size "<<img->imageSize<<std::endl;

    cvShowImage("My_Win", img);

    cvWaitKey(0);

    // Free the resources.
    cvDestroyAllWindows();
    cvReleaseImage(&img);
return 0;
}


回答2:

Since you are using VS2008, change Z:\Games instalados\OpenCV\opencv\build\x86\vc11 to Z:\Games instalados\OpenCV\opencv\build\x86\vc9. The vc11 folder is for VS2012, vc9 is for VS2008.