openCV3.X+VS2015+Windows10环境配置详解

来源:互联网 发布:java rsa 公钥 私钥 编辑:程序博客网 时间:2024/05/29 23:44

参照爱跑步的铁锤文章:win10下vs2015配置Opencv3.1.0过程详解,完成了openCV3.3.1+VS2015的环境配置,3.3.1的build文件夹中只有x64没有x86,配置方法和2.x系列略有不同。所以原文照搬过来咯,因为之前照搬设置,发生了错误,这里做了一些修改,实际配置时,注意路径和版本命名对应。

步骤:

下载openCV源码

下载Opencv3.1.0,进入官网,点击opencv for windows即可下载。 双击运行下载的自解压文件,解压到自己需要的目录中。

OpenCV3.X环境配置

添加系统环境变量

选择此电脑(计算机),右键属性->高级系统设置->环境变量->系统变量->找到Path->编辑在变量值中添加相应路径,我的路径是..\..\opencv\build\x64\vc14\bin

系统设置位置
添加环境变量path

新建一个VS2015工程

新建项目->Visual C++->新建Win32控制台项目
创建一个空项目,并新建一个空的Cpp文件。

修改用户配置文件

点击视图,在视图下找到其他窗口,在其他窗口下找到属性管理器,点击打开。


属性管理器1
属性管理器

下面是重点:
1.需要修改的是上图中圈出的两个文件,首先修改Debug目录下的Microsoft.Cpp.x64.user

  • 通用属性->VC++目录->包含目录,添加以下三条路径,其实这些都是刚才OpenCV相关解压文件所在的目录
    your opencv path\opencv\build\include
    your opencv path\opencv\build\include\opencv
    your opencv path\opencv\build\include\opencv2
  • 通用属性->VC++目录->库目录添加下面一条路径
    C:\Opencv3.1.0\opencv\build\x64\vc14\lib

添加目录

  • 链接器->输入->会在右侧看到附加依赖项,添加下面文件
    opencv_world310d.lib

2.修改Release目录下的Microsoft.Cpp.x64.user

前两个和上面的一样,

  • 通用属性->VC++目录->包含目录,添加以下三条路径,其实这些都是刚才OpenCV相关解压文件所在的目录
    your opencv path\opencv\build\include
    your opencv path\opencv\build\include\opencv
    your opencv path\opencv\build\include\opencv2
  • 通用属性->VC++目录->库目录添加下面一条路径
    C:\Opencv3.1.0\opencv\build\x64\vc14\lib

只有下面这一项需要变化

  • 链接器->输入->会在右侧看到附加依赖项,添加下面文件
    opencv_world310.lib,注意这里的库文件和上面的区别opencv_world310d.lib,release模式没有d

可能出现的情况:

  • 修改Release下面的附加依赖项为opencv_world310.lib之后,Debug下面的相应也自动修改了,出现这种情况,是因为两种编译模式引用了同一个配置文件导致的,因此要将C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\x64\Microsoft.Cpp.x64.props复制一份,命名为openCV_Release_x64.props存到其他文件夹。然后在属性管理器的Release|64右键添加已存在项目,然后再将附加依赖项改为opencv_world310.lib,同时确保Debug|64的附加依赖项为opencv_world310d.lib,安全起见,可以再复制一份,命名为openCV_Debug_x64.props,设置附加依赖项opencv_world310d.lib

测试代码

注意:这里应该将调试模式设置为Debug/Release | x64
调试

#include<opencv2\opencv.hpp>int main() {    const cv::String winName = "figure";    cv::Mat m;    cv::namedWindow(winName,cv::WINDOW_AUTOSIZE);    m.create(300, 300, CV_32FC3);    m.setTo(cv::Scalar(0.0f, 2.0f, 5.0f));    cv::imshow(winName, m);    cv::waitKey(0);}