最近由于学校里一些工作的需要,开始接触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的安装版:

opencv更换版本 opencv3版本_cmake

二.下载和安装opencv3.2.0

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

opencv更换版本 opencv3版本_cmake_02

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

opencv更换版本 opencv3版本_开发环境搭建_03

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

三.开发环境的搭建

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

1.添加环境变量:

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

然后确定,关闭,如图:

opencv更换版本 opencv3版本_opencv_04

2.配置VS2015:

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

opencv更换版本 opencv3版本_opencv_05

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

opencv更换版本 opencv3版本_x86_06

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

opencv更换版本 opencv3版本_opencv_07

 

点左侧的 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;

如下图:

opencv更换版本 opencv3版本_x86_08

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

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

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

opencv更换版本 opencv3版本_x86_09

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

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

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

opencv更换版本 opencv3版本_opencv更换版本_10

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

opencv更换版本 opencv3版本_opencv_11

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

 

#include <opencv2/core/utility.hpp>
#include <iostream>


const char* keys =
{
	"{ b build | | print complete build info }"
	"{ h help  | | print this help           }"
};


int main(int argc, const char* argv[])
{
	cv::CommandLineParser parser(argc, argv, keys);


	if (parser.has("help"))
	{
		parser.printMessage();
	}
	else if (!parser.check())
	{
		parser.printErrors();
	}
	else if (parser.has("build"))
	{
		std::cout << cv::getBuildInformation() << std::endl;
	}
	else
	{
		std::cout << "Welcome to OpenCV " << CV_VERSION << std::endl;
	}


	return 0;
}

运行效果如下:

 

opencv更换版本 opencv3版本_opencv_12

然后把工具栏的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,注意这两个路径不要有中文,如图:

 

opencv更换版本 opencv3版本_cmake_13

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

opencv更换版本 opencv3版本_opencv更换版本_14

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

opencv更换版本 opencv3版本_开发环境搭建_15

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

opencv更换版本 opencv3版本_opencv更换版本_16

5.再点Generate,如图:

opencv更换版本 opencv3版本_x86_17

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

opencv更换版本 opencv3版本_opencv更换版本_18

五.用vs2015编译opencv3.2 

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

opencv更换版本 opencv3版本_opencv更换版本_19

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

opencv更换版本 opencv3版本_cmake_20

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

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

opencv更换版本 opencv3版本_cmake_21

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

opencv更换版本 opencv3版本_opencv更换版本_22

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

opencv更换版本 opencv3版本_开发环境搭建_23

六.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;如图:

opencv更换版本 opencv3版本_opencv更换版本_24

七.完成

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

 

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

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