VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

[cpp] view plain copy
  1. 最近由于学校里一些工作的需要,开始接触opencv,学习期间遇到了不少的问题,还好最后都一一解决了,应该有不少初学者也会有同样的问题,下面就来说一下opencv3.2的一些配置和使用问题。opencv3比较新,学习的书籍不算多,我个人学习期间参考了《OpenCV3编程入门》毛星云 一书,写得很详细,也推荐给大家。  

先说一下我使用的配置环境:

1.vs2015

2.OpenCV-3.2.0-vc14

3.cmake3.8.0 (编译x86的opencv需要)

一.下载安装vs2015和cmake

vs2015下载:https://msdn.microsoft.com/zh-cn/visual-studio-community-vs.aspx 

vs2017下载:www.visualstudio.com/

下载和安装需要一些时间,也可以从网上找离线版本的安装包,安装过程网上能找到很多,这里不再赘述。

cmake下载:http://www.cmake.org/,进入之后点右上角的Download,下载相应的版本并安装,我选择的是win64的安装版:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

二.下载和安装opencv3.2.0

1.进入opencv下载页面,https://sourceforge.NET/projects/opencvlibrary/files/opencv-win/,点3.2.0,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

2.之后点opencv-3.2.0-vc14.exe,vc14对应的是vs2015,如下:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

3.下载完成后打开,选择目录安装,它会在你选择的目录解压出一个opencv 文件夹,比如我选的路径是C:\opencv,记住这个路径,下载安装这一步就完成了。

三.开发环境的搭建

安装目录视具体情况不同,以安装在C:\opencv为例

1.添加环境变量:

在桌面对此电脑右键-属性-高级系统设置-环境变量,在下面 系统变量 里找到Path,添加路径 C:\opencv\build\x64\vc14\bin; 

然后确定,关闭,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

2.配置VS2015:

打开vs2015,点新建项目-Win32控制台应用,确定,勾选空项目,完成,如下:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

之后在 解决方案资源管理器 里 右键点 源文件,添加-新建项,确定:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

然后点菜单里 视图-属性管理器,展开项目目录看到如下文件夹,双击点开Debug | x64下的Microsoft.Cpp.x64.user:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

左侧的 VC++目录   改变以下几项 

1.在 可热行文件目录下加上 C:\opencv\build\x64\vc14\bin;

2.在 包含目录 加上三个路径 C:\opencv\build\include\opencv2;C:\opencv\build\include\opencv;C:\opencv\build\include;

3.在  库目录 加上路径  C:\opencv\build\x64\vc14\lib;

如下图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

成后点左侧的 链接器-输入,

在 附加依赖项 加上 opencv_world320d.lib;opencv_world320.lib;

其中的320表示版本是opencv3.2.0,后面的d表示debug版本,没有d表示release版本的,如下图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

闭该页,对 Release | x64 的 Microsoft.Cpp.x64.user做上述同样的修改,关闭。

opencv3.2.0解压文件build中没有x86,所以这里先配置x64,有需要的话看后面的x86编译和配置步骤。

测试一下,先点工具栏x86下拉框,点配置管理器,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

项目平台选x64(选成win32运行的话就会提示缺少*.dll文件),活动解决方案配置和活动解决方案平台选Debug,x86(前面如果没有错的话,这两项选哪个都可以运行,配置完之后要把这两项换成Releaze和x64分别测试一下),如下:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

3.关闭,粘贴下面的官方示例代码试试:

[cpp] view plain copy
  1. #include <opencv2/core/utility.hpp>  
  2. #include <iostream>  
  3.   
  4.   
  5. const char* keys =  
  6. {  
  7.     "{ b build | | print complete build info }"  
  8.     "{ h help  | | print this help           }"  
  9. };  
  10.   
  11.   
  12. int main(int argc, const char* argv[])  
  13. {  
  14.     cv::CommandLineParser parser(argc, argv, keys);  
  15.   
  16.   
  17.     if (parser.has("help"))  
  18.     {  
  19.         parser.printMessage();  
  20.     }  
  21.     else if (!parser.check())  
  22.     {  
  23.         parser.printErrors();  
  24.     }  
  25.     else if (parser.has("build"))  
  26.     {  
  27.         std::cout << cv::getBuildInformation() << std::endl;  
  28.     }  
  29.     else  
  30.     {  
  31.         std::cout << "Welcome to OpenCV " << CV_VERSION << std::endl;  
  32.     }  
  33.   
  34.   
  35.     return 0;  
  36. }  

运行效果如下:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

然后把工具栏的Debug 和x86分别换成Releaze,x64试试,上面都配置好的话都可以运行。

---------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------

到这里x64版本的已经配置完成,如果想要x86版的继续看下面。如果你不想麻烦并且和我的环境一样的话,可以跳过 四和五,到最后下载我编译好的x86库文件放到和x64同 级目录里(如C:\opencv\build\),配置和上面x64只有 附加依赖项不一样

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

四.用cmake生成opencv解决方案 

1.打开cmake-gui(如果桌面没有就在开始菜单里找),点Browse Source 按钮,选择opencv安装文件夹下source的路径,我选的C:/opencv/sources,点Browse Build按钮,选择生成解决方案的路径 ,我选的C:/files,注意这两个路径不要有中文,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

2.点左下角的Configure按钮,选定Use default native compilers,再选择VS版本,我的是VS2015,那就选visual studio 14 2015:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

3.点Finsh,稍等一会,出现下面的Configuring done页面:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

4.再点Configure,等一会出现下面的页面:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

5.再点Generate,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

6.Generate完成后会有Generating done 字样,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

五.用vs2015编译opencv3.2 

1.到这里已经用cmake生成了VS2015的解决方案,关闭cmake,打开上面你所选择的Build文件夹,比如我的是C:/files,可以找到一个OpenCV.sln解决方案,打开这个文件:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

2.打开之后,工具栏里的Debug改成Releaze,不要改其他选项,点生成-生成解决方案,等几分钟:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

3.生成完成之后,结果显示成功57个,失败0个,跳过7个,这个我不知道原因,不去理会

4.打开左侧 解决方案资源管理器,找到CMakeTargets-INSTALL:右键,选 仅用于项目-仅生成INSTALL

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

5.对INSTALL右键,选 仅用于项目-仅生成INSTALL ,完成之后可以关闭VS2015,在build生成目录 (如上述C:\files)下找到install文件夹,里面有个x86文件夹(其他的都可以删了)这就是我们编译好的的x86版的库,:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

6.把这个x86文件夹复制或移动到opencv 安装目录/build/ 下,如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

六.VS2015配置

之后就是配置过程,和x64的配置差不多(1添加环境变量path ,2修改配置管理器的win32debug和win32releaze属性页,可执行文件目录C:\opencv\build\x86\vc14\bin;,包含目录三个和x64一样 C:\opencv\build\include;C:\opencv\build\include\opencv;C:\opencv\build\include\opencv2;,库目录C:\opencv\build\x86\vc14\lib;),除了一点不一样的是,附加依赖项添加如下:

opencv_calib3d320d.lib;
opencv_core320d.lib;
opencv_features2d320d.lib;
opencv_flann320d.lib;
opencv_highgui320d.lib;
opencv_imgcodecs320d.lib;
opencv_imgproc320d.lib;
opencv_ml320d.lib;
opencv_objdetect320d.lib;
opencv_photo320d.lib;
opencv_shape320d.lib;
opencv_stitching320d.lib;
opencv_superres320d.lib;
opencv_video320d.lib;
opencv_videoio320d.lib;
opencv_videostab320d.lib;
opencv_calib3d320.lib;
opencv_core320.lib;
opencv_features2d320.lib;
opencv_flann320.lib;
opencv_highgui320.lib;
opencv_imgcodecs320.lib;
opencv_imgproc320.lib;
opencv_ml320.lib;
opencv_objdetect320.lib;
opencv_photo320.lib;
opencv_shape320.lib;
opencv_stitching320.lib;
opencv_superres320.lib;
opencv_video320.lib;
opencv_videoio320.lib;
opencv_videostab320.lib;

如图:

VisualStudio工程设置(二)---opencv3.2在vs2015开发环境搭建+cmake3.8编译生成opencv x86版本库

七.完成

点生成-配置管理器 把项目平台改成Win32,粘贴上上面的代码编译运行试一下,配置没有问题的话都可以运行


我也是初学编程,有很多不对的地方希望大家批评指正,最后祝大家学习进步!

opencv3.2.0 的x86版库文件百度云盘:http://pan.baidu.com/s/1i432EhB