在Visual Studio 2008上安装OpenCV 2.4.5

时间:2013-05-15 21:04:47

标签: c++ visual-studio visual-studio-2008 opencv

我在使用Visual Studio 2008(专业版)时尝试使用OpenCV遇到了一些困难。我相信我已经完成了运行OpenCV示例所需的一切,但由于运行时错误导致崩溃。这让我疯了,我希望有人可以提供帮助。

但首先要做的事情。

我的安装程序

  1. 从sourcefourge.net下载OpenCV 2.4.5

  2. 出现提示时,我选择了“Z:\ Games instalados \ OpenCV”作为从上面链接下载的.exe中的“Extract to”选项。

  3. 去“控制面板” - > “系统” - > “高级系统设置”,然后单击“高级”选项卡中的“环境变量”。在“系统变量”框中,我突出显示“路径”,然后单击“编辑...”。在新窗口中,我在“变量值”的文本末尾添加了一个带有“;”的安装目录在它之前,即“; Z:\ Games instalados \ OpenCV \ opencv \ build \ x86 \ vc11 \ bin”(不带双引号)。这是一个屏幕截图:screenshot

  4. 在Visual Studio 2008中创建了一个新项目:File - >新 - >项目......,选择“其他语言” - > “Visual C ++ - >”Win32“作为项目类型;”Win32控制台应用程序“作为模板。new project在新窗口中单击”下一步“,然后选择”控制台应用程序“,”空项目“,然后“完成”。new window
  5. 在“解决方案资源管理器”中,右键单击我的程序并选择“属性”。然后“配置属性” - > “C / C ++” - > “一般”,以及我添加的其他包含目录:
    • Z:\ Games instalados \ OpenCV \ opencv \ build \ include
    • Z:\ Games instalados \ OpenCV \ opencv \ build \ include \ opencv
    • Z:\ Games instalados \ OpenCV \ opencv \ build \ include \ opencv2 “Additional Include
  6. 现在位于“配置属性”中 - > “C / C ++” - > “链接器” - > “常规”,在“附加库目录”中我添加了“Z:\ Games instalados \ OpenCV \ opencv \ build \ x86 \ vc11 \ lib”。 Additional Library
  7. 现在位于“配置属性”中 - > “C / C ++” - > “链接器” - > “输入”,在“附加依赖项”中我添加了:
    • 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 (请注意,尽管屏幕截图显示,但我没有添加“opencv_ffmpeg245.lib”)。 Additional Dependencies
  8. 右键点击“来源文件” - > “添加” - > “现有项目”并添加了“Z:\ Games instalados \ OpenCV \ opencv \ samples \ cpp \ cout_mat.cpp”文件。 Added cout_mat
  9. 问题

    1. 建立项目,这里没有问题,“构建成功”。
    2. “调试” - > “开始调试”。出现以下内容: The error http://s8.postimg.org/wdkubk5o3/the_error.jpg 错误的完整尺寸图片:http://s8.postimg.org/wdkubk5o3/the_error.jpg
    3. 我也尝试过hough lines示例,但是效果不好(即使图像与.exe imread()在同一个文件夹中也找不到图像)。

      非常感谢任何帮助。

      如果我没有明确说明某些安装步骤,请发表评论。

      原因此问题适用于stackoverflow.com

      我已经详细介绍了一个完整的安装程序(从头开始),用于与Visual Studio 2008一起使用的最新版OpenCV。如果有人解决了这个问题,我们将为具有相同必要性的任何人提供完整的工作教程(使用最新的OpenCV与visual studio 2008),并且可能(因为安装程序的深度)是安装最新OpenCV与大多数Visual Studio版本的一般指南(不仅仅是2008年,因为教程不会有太大变化,并且读者可以很容易地适应它)。

2 个答案:

答案 0 :(得分:1)

我建议你是否要测试opencv的正确安装。只需在opencv中加载simple.jpg图像并显示它。如果这样可行,那么您可以开始调试崩溃的程序。您可以通过连续启用cout来调试它。可能首先在示例cout_mat.cpp中启用默认cout并对其余部分进行注释 以下是您可以尝试测试安装的简单加载程序。

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

答案 1 :(得分:1)

由于您使用的是VS2008,请将Z:\Games instalados\OpenCV\opencv\build\x86\vc11更改为Z:\Games instalados\OpenCV\opencv\build\x86\vc9。 vc11文件夹用于VS2012,vc9用于VS2008。