5

我在尝试将 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 安装程序\OpenCV\opencv\build\include
    • Z:\Games 安装程序\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”文件。 添加了 cout_mat

问题

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

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

任何帮助将不胜感激。

如果我没有把一些安装步骤说得足够清楚,请发表评论。

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

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

4

2 回答 2

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;
}
于 2013-05-15T21:44:22.887 回答
1

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

于 2013-05-17T04:44:46.763 回答