OpenCV安装流程及从源码编译方法 + 配置VS

本篇文章记录了安装OpenCV 3.4.2及配置VS2017的方法,以及利用CMake从源码编译适用于老版本VS2013的OpenCV 3.4.2的编译及配置流程。本文也可以作为其他OpenCV及VS版本安装配置方法的参考。

 

1 安装OpenCV 3.4.2

 

从OpenCV官网下载安装包:https://opencv.org/releases.html

OpenCV安装流程及从源码编译方法 + 配置VS_第1张图片

双击安装:即解压文件到指定文件夹

注:安装程序会自动创建“opencv”文件夹

OpenCV安装流程及从源码编译方法 + 配置VS_第2张图片

“build”文件夹包含编译好的库文件,可以直接配置使用
“sources”文件夹里面是源代码以及示例程序“samples”、文档“doc”等
 OpenCV安装流程及从源码编译方法 + 配置VS_第3张图片

在“build”文件夹内,“include”里面是头文件,“x64”文件夹里面是64位编译器的生成的动态链接库文件(包括vc14,vc15版本)

注:vc10对应VS2010,vc11对应VS2012,vc12对应VS2013,vc14对应VS2015,vc15对应VS2017。

注:如果需要使用静态链接库或者在其他版本的VS中使用,则需要手动编译。

 

2 配置OpenCV 3.4.2 + VS2017

 

2.0 配置环境变量(重启系统生效

在系统桌面的此电脑图标上右击,依次选择“属性 - 高级系统设置 - 环境变量”

在下方的系统变量中找到Path变量,双击打开,添加OpenCV动态链接库的路径:

[OpenCV安装路径]\opencv\build\x64\vc15\bin

注:按照自己OpenCV实际的安装路径值替换上面的“[OpenCV安装路径]”字符串。

注:对于动态编译生成的可执行文件,其运行时需要依靠该环境变量找到“.dll”动态链接库文件所在地址进行函数和数据的动态调用。

 

然后需要对开发环境VS2017进行设置,使VS能找到调用OpenCV所需要的头文件和库文件。

 

2.1 永久生效的配置方法

这种配置方法对所有VS创建的项目都有效,并且所修改的配置文件会被不同版本的VS共用。

1. 用VS2017任意打开或创建一个C++项目,依次点击“视图”-“属性管理器(M)”

注:对于VS2013,依次点击“视图”-“其他窗口”-“属性管理器”

OpenCV安装流程及从源码编译方法 + 配置VS_第4张图片

2. 在打开的属性管理器窗口中,展开“Debug|x64”节点,双击“Micorsoft.Cpp. x64.user”,打开全局属性的设置窗口:

OpenCV安装流程及从源码编译方法 + 配置VS_第5张图片

2.1. 在左边选择“VC++目录”

OpenCV安装流程及从源码编译方法 + 配置VS_第6张图片

在右边“包含目录”中添加OpenCV的头文件目录:

[OpenCV安装路径]\opencv\build\include

在右边“库目录”中添加OpenCV的链接库目录:

[OpenCV安装路径]\opencv\build\x64\vc15\lib

2.2. 在左边选择“链接器 - 输入”

OpenCV安装流程及从源码编译方法 + 配置VS_第7张图片

在右边“附加依赖项”中添加OpenCV的库文件名:

opencv_world342.lib
opencv_world342d.lib

注:含后缀“d”代表Debug版本。
注:属性管理器窗口中的“Release|x64”节点的“Micorsoft.Cpp. x64.user”项同Debug节点项,不需要再次配置。

添加完成后,右击“Micorsoft.Cpp. x64.user”,选择“保存”即可。

 

2.2 单次生效的配置方法

这种配置方法只对当前所配置的项目有效。

依次点击“项目 - 属性”(或者在项目名称上右击,选择“属性”)

OpenCV安装流程及从源码编译方法 + 配置VS_第8张图片

在打开的项目属性页进行“包含目录,库目录,附加依赖项”的配置,配置方法同前文2.1 永久生效的配置方法所述。

 

2.3 生成配置文件的配置方法(推荐)

这种配置方法创建配置文件并保存,每次只在需要OpenCV的项目中添加配置文件即可。

 

1. 在VS2017中任意打开或创建一个C++项目,依次选择“视图”-“属性管理器(M)”

2. 在属性管理器的“Debug|x64”项右击,选择“添加新项目属性表”

OpenCV安装流程及从源码编译方法 + 配置VS_第9张图片

自行设定名称和路径(方便之后的OpenCV项目寻找使用),并点击”添加“(如:OpenCV3.4.2_VS2017_x64.props)

OpenCV安装流程及从源码编译方法 + 配置VS_第10张图片

3. 双击“Debug|x64 - OpenCV3.4.2_VS2017_x64.props”

在打开的属性页进行“包含目录,库目录,附加依赖项”的配置,配置过程同前文2.1 永久生效的配置方法所述

配置完成后,右击“OpenCV3.4.2_VS2017_x64.props”,选择“保存”即可

然后,按下一条“4.”所述为该项目的“Release|x64”项添加刚才创建的配置文件,使该项目在Debug和Release模式下均可使用OpenCV库。

4. 之后创建OpenCV项目时,直接在“属性管理器”窗口的“Debug|x64”(以及“Release|x64”)项右击,选择“添加现有属性表”,找到之前保存的配置文件“OpenCV3.4.2_VS2017_x64.props”,并“打开”即可。

OpenCV安装流程及从源码编译方法 + 配置VS_第11张图片

 

3 从源码编译并配置适用于VS2013的OpenCV 3.4.2

注:编译Debug版本的OpenCV的Python接口时,需要“python[版本号]_d.lib”库文件。因此,在安装Python时应选择自定义安装选项并勾选安装其Debug组件(若之前没有安装,可以直接打开同版本的Python安装包,选择“Modify”进行附加安装)

 

1. 使用CMake从源码构建VS工程

首先安装CMake:https://cmake.org/download

OpenCV安装流程及从源码编译方法 + 配置VS_第12张图片

1.1. 打开“cmake-gui.exe”程序

OpenCV安装流程及从源码编译方法 + 配置VS_第13张图片

Where is the source code:填写OpenCV安装(解压)后的“sources”文件夹地址(包含CMakeLists.txt文件)

新建一个文件夹(如“[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64”),用于存放CMake使用OpenCV源码构建的VS工程,将其路径填入Where to build the binaries

 

 OpenCV安装流程及从源码编译方法 + 配置VS_第14张图片
 

 

2.2. 点击配置“Configure”

选择Visual Studio 12 2013 Win64(如果选择Visual Studio 12 2013选项,则会构建Win32项目),然后点击“Finish”,CMake自动开始检测计算机环境、下载依赖项。

等待配置完成后(此过程受网络状况影响,可能时间较长),窗口的框内整个显示红色(此时可以选择进行参数配置或略过即可),再次点击“Configure”,等待进度条完成且红色消失即表示配置成功。

2.3. 点击“Generate”

开始生成解决方案,下方的信息栏输出“Generating done”表示创建成功。

点击“Open Project”选择VS2013打开(或使用VS2013打开解决方案中的“.sln”文件),即可进入VS界面。

 

2. 在VS2013中编译生成库文件

2.1. 在Solution Explorer(解决方案资源管理器)中,右键“CMakeTargets/ALL_BUILD”,选择生成(Build)

OpenCV安装流程及从源码编译方法 + 配置VS_第15张图片

完成之后,将在以下目录看到生成的动态链接库文件:

[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\bin\Debug
[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\lib\Debug

2.2. 右键“CMakeTargets/INSTALL”,选择生成(Build)

OpenCV安装流程及从源码编译方法 + 配置VS_第16张图片

这是为了将所有的头文件和库文件集中到一起,便于管理和使用。

完成之后,将在以下目录看到库文件:

[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\install\x64\vc12\bin
[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\install\x64\vc12\lib

2.3. 将Debug模式修改为Release模式,重新执行上面两步2.1.2.2.

 

3. 配置OpenCV与VS

 

3.1. 添加系统环境变量

 

按照前述2.0 配置环境变量添加以下环境变量:

[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\install\x64\vc12\bin

3.2. 属性配置

按照前述2.12.22.3配置以下内容:

包含目录:

[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\install\include

库目录:

[OpenCV安装路径]\opencv\opencv3.4.2_vs2013_x64\install\x64\vc12\lib

附加依赖项:

opencv_calib3d342.lib
opencv_calib3d342d.lib
opencv_core342.lib
opencv_core342d.lib
opencv_dnn342.lib
opencv_dnn342d.lib
opencv_features2d342.lib
opencv_features2d342d.lib
opencv_flann342.lib
opencv_flann342d.lib
opencv_highgui342.lib
opencv_highgui342d.lib
opencv_imgcodecs342.lib
opencv_imgcodecs342d.lib
opencv_imgproc342.lib
opencv_imgproc342d.lib
opencv_ml342.lib
opencv_ml342d.lib
opencv_objdetect342.lib
opencv_objdetect342d.lib
opencv_photo342.lib
opencv_photo342d.lib
opencv_shape342.lib
opencv_shape342d.lib
opencv_stitching342.lib
opencv_stitching342d.lib
opencv_superres342.lib
opencv_superres342d.lib
opencv_video342.lib
opencv_video342d.lib
opencv_videoio342.lib
opencv_videoio342d.lib
opencv_videostab342.lib
opencv_videostab342d.lib

注:请按照本机实际的安装路径进行配置。

注:以上的“附加依赖项”只针对“OpenCV 3.4.2”,其他版本的库名需要根据实际名称进行修改。

 

4 安装配置的测试

注:本篇文章前述安装及配置的都是“x64”版本的动态链接库。因此,调用OpenCV的VS2017工程应该设置为使用“x64”编译器进行编译:

VS2013创建的“Win32控制台应用程序”转为“x64”编译器的方法:

下拉编译器设置,选择“配置管理器”

在“活动解决方案平台”项下拉,选择“新建”,在“键入或选择新平台”处下拉,选择“x64”,点击确定。

 

1. 在已经配置OpenCV的VS项目中添加源文件,编码如下内容:

#include //C++输入输出库头文件
#include //OpenCV核心库头文件
#include //OpenCV图形处理头文件

using namespace std;

int main()
{
	//窗口名称
	string windowName = "HelloWorld";
	//图像名称
	string imgName = "CR7.jpg";

	//读入图像
	cv::Mat image = cv::imread(imgName, CV_LOAD_IMAGE_COLOR);
	//如果无法读取图像
	if (!image.data)
	{
		cout << "无法打开图像文件!" << endl;
		system("PAUSE");//暂停窗口
		return -1;
	}

	//创建一个新窗口
	cv::namedWindow(windowName, CV_WINDOW_AUTOSIZE);
	//将图像显示都新创建的窗口中
	cv::imshow(windowName, image);
	//等待,直到用户按任意键时退出
	cv::waitKey(0);

	return 0;
}

注:请将图片放入项目源文件所在文件夹,或者在程序中使用绝对路径。

2. 编译项目并运行,正确显示图像窗口:

OpenCV安装流程及从源码编译方法 + 配置VS_第17张图片

 

注:本篇文章参考了OpenCV官方文档及其他相关文章,在此表示感谢!

文章地址:https://blog.csdn.net/jayoungo/article/details/81032253

转载请注明出处。

你可能感兴趣的:(OpenCV)