【问题标题】:Installation of OpenCV 2.4.5 on Visual Studio 2008在 Visual Studio 2008 上安装 OpenCV 2.4.5
【发布时间】:2013-05-10 14:38:19
【问题描述】:

我在尝试将 OpenCV 与 Visual Studio 2008(专业版)一起使用时遇到了一些困难。我相信我已经完成了运行 OpenCV 示例所需的一切,但它由于运行时错误而崩溃。这让我发疯了,我希望有人能帮忙。

但首先要做的事情。

我的安装过程

  1. 从 sourcefourge.net 下载 OpenCV 2.4.5

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

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

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

问题

  1. 构建项目,这里没有问题,“构建成功”。
  2. “调试”->“开始调试”。出现以下内容: The error http://s8.postimg.org/wdkubk5o3/the_error.jpg 错误的全尺寸图片:http://s8.postimg.org/wdkubk5o3/the_error.jpg

我也尝试过使用霍夫线示例,但效果不佳(即使图像与 .exe imread() 位于同一文件夹中也找不到图像)。

任何帮助将不胜感激。

如果我的某些安装步骤不够清楚,请发表评论。

这个问题适合 stackoverflow.com 的原因

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

【问题讨论】:

  • “在大多数 Visual Studio 版本中安装最新 OpenCV 的一般指南(不仅仅是 2008,因为教程不会有太大变化,读者可以轻松适应它)。” OpenCV上维护的OpenCV安装指南有什么问题Website
  • 这是我的第一个方法。但结果是一样的。
  • 请编辑您的帖子,以便正确显示出现的错误。
  • 图片是不是太小了?你可以去:s8.postimg.org/wdkubk5o3/the_error.jpg
  • 由于标题、所有安装信息以及 vc9 v 的 vc11 问题,我忽略了这个问题是特定于 opencv\samples\cpp\cout_mat.cpp 的问题。如果我用 opencv 2.4.4 尝试cv::Mat m; cout << m;,我会得到同样的错误。看来这是一个 opencv 问题 - 在answers.opencv.org/question/6094/using-cout-with-mat-object 找到另一个问题。他们重建了 opencv,它显然解决了这个问题。

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


【解决方案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;
}

【讨论】:

  • 这段代码运行良好。这是否明确意味着我正确安装了 OpenCV?因为我仍然无法运行 cout_mat.cpp(来自 OpenCV 的示例)。
  • 换句话说,我应该开始寻找“cout_mat.cpp”中的错误,因为我的安装工作正常吗?
  • 我很快尝试了 cout_mat.cpp。我认为问题不在于安装 opencv。但很可能它与 operator 可能是一些问题
  • 我有一个小问题,我正在尝试安装 opencv 2.4.13,它只包括 vc11 和 vc12,我使用的是 Visual Studio2010,所以我可以在 Visual Studio2010 中使用 vc11 吗??
【解决方案2】:

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

【讨论】:

  • 已更改,尝试运行 cout_mat.cpp 时仍然显示相同的运行时错误。
  • 更改路径环境变量后,您是否重新启动了 Visual Studio 以便它选择新环境(实际上由于加载了 dll,您可能需要重新启动)?你能用调试器单步到达发生访问冲突的地方吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 2010-12-13
相关资源
最近更新 更多