VS 配置 OpenCV

502 阅读5分钟

@TOC

1问题描述如有疑问可留言沟通交流Ⅰ 1 问题描述:^{如有疑问可留言沟通交流}

1.VS2017配置OpenCV?[转 Ⅰ 3]
2.VS版本选择?[转 Ⅲ 0.0]
3.OpenCV版本选择?[转 Ⅲ 0.0]

2问题本质:如有疑问可留言沟通交流Ⅰ 2 问题本质: ^{如有疑问可留言沟通交流}

windows - Visual studio 配置 OpenCV

3问题解决:如有疑问可留言沟通交流Ⅰ 3 问题解决: ^{如有疑问可留言沟通交流}

演示版本 (其他 系统平台 的各种VS版本安装各种OpenCV版本可以参考一下):

  • Windows10
  • VS 2017 、OpenCV 4.6.0

解决步骤:

0写在前面版本说如有疑问可留言沟通交流Ⅱ 0 写在前面 - 版本说明^{如有疑问可留言沟通交流}

Ⅲ 0.0 VS版本选择

如果安装了不适合的vs版本,导致软件启动慢、启动盘占满、影响效率。因此我们有必要根据电脑性能选择合适的版本,VS版本选择可参考下表:

C盘可用容量VS安装盘可用容量VS可选版本VS推荐版本
20G+50G+2017及以上最新版
10G+40G+2017以下2015
7G+8G+2010及以下2010

上表是根据C盘容量大致参考,VS要求的系统具体参数参见 VS官方,下图展示了Visual Studio 2017 所需要求:
Visual Studio 2017 所需系统要求.png
鉴于电脑购置资金受限,因此不推荐安装VS到C盘(我安装的是D盘),尽管如此VS的安装还是会消耗C盘容量,咱也不知道为啥。

Ⅲ 0.1 OpenCV版本选择

为啥会说这个VS版本,因为OpenCV版本和VS版本有着千丝万缕的关系。

  • 从VS出发,选择OpenCV: | Visual Studio版本 | VC++编译器版本 | 推荐OpenCV版本 | | --- | --- | --- | | VS 2022 | vc17 | 4.7.0 ~ latest | | VS 2019 | vc16 | 4.7.0 ~ latest | | VS 2017 | vc15 | 3.4.0 ~ 3.4.15、4.0.0 ~ 4.6.0 | | VS 2015 | vc14 | 2.4.13.2 ~ 2.4.13.6、3.2.0、3.3.0、3.3.1、3.4.0 ~ 3.4.15、4.0.0 ~ 4.6.0 | | VS 2013 | vc12 | 2.4.9 ~ 2.4.13、3.0.0 ~ 3.1.0 | | VS 2012 | vc11 | 2.4.9 ~ 2.4.13、3.0.0 | | VS 2010 | vc10 | 2.4.9 ~ 2.4.11 |

  • 从OpenCV出发,选择VS: | OpenCV版本 | CV官方提供的编译库对应 @位数@VC++版本 | 推荐Visual Studio版本 | | --- | --- | --- | | 4.7.0 ~ latest | @x64 @vc16 | VS 2019 | | 4.0.0 ~ 4.6.0 | @x64 @vc14、vc15 | VS 2017 | | 3.4.0 ~ 3.4.15 | @x64 @vc14、vc15 | VS 2017 | | 3.2.0、3.3.0、3.3.1 | @x64 @vc14 | VS 2015 | | 3.1.0 | @x64 @vc12、vc14 | VS 2015 | | 2.4.13.2 ~ 2.4.13.6 | @x86、64 @vc14 | VS 2015 | | 2.4.12、2.4.13、3.0.0 | @x86、64 @vc11、vc12 | VS 2013 | | 2.4.9 ~ 2.4.11 | @x86、64 @vc10、vc11、vc12 | VS 2013 |

版本推荐依据:

1.OpenCV发行版本: Releases - OpenCV
2.微软官方给出的Visual Studio版本及其默认安装的VC++编译器版本 对应表

当然,如果上述推荐未满足开发需求,可以自行尝试对源代码进行编译^-^

1OpenCV如有疑问可留言沟通交流Ⅱ 1 OpenCV获取^{如有疑问可留言沟通交流}

可以根据自己的需求选择合适的OpenCV版本,这里使用OpenCV4.6.0 opencv-4.6.0-vc14_vc15.exe:
Releases - OpenCV.png
文件下载后,双击opencv-4.6.0-vc14_vc15.exe进行提取:
文件提取.png
选择路径D:\OpenCV4.6.0,点击"Extract",稍等片刻 文件提取ing.png
提取后的文件目录:

OpenCV根目录: D:\OpenCV4.6.0\opencv
根目录.png
OpenCV官方提供的编译库目录: D:\OpenCV4.6.0\opencv\build 编译库目录.png

VS安装没什么可说的,所以这里就不赘述了,如果有需求可以私聊我补上。

2配置环境变如有疑问可留言沟通交流Ⅱ 2 配置环境变量^{如有疑问可留言沟通交流}

2.1 右键点击此电脑-属性-高级系统设置-高级选项卡-环境变量手动配置环境变量(注意路径,要和自己安装的路径一样才行):
配置环境变量.png 2.2 环境变量添加成功后,重启电脑使得环境变量生效。

3配置VS项目属如有疑问可留言沟通交流Ⅱ 3 配置VS项目属性^{如有疑问可留言沟通交流}

打开VS2017新建空项目,项目名称、位置自定义:
新建VS空项目.png
首先确保编译环境是x64,我这里选择的是Release版本,Debug版本配置只有一步不一样,其他都是一样的,我会在下文中指出。然后推荐使用新建属性表,这样可以配置多个版本,在需要的时候直接添加对应的属性表就可以,如果全部添加在自带的属性表中,以后添加的版本太多或者添加的其他库太多会导致灾难性的后果:配置属性冲突等…

Ⅲ 3.0 打开属性管理器(依次点击 视图-其他窗口-属性管理器)

属性管理器.png
在对应的 属性管理器 中右键 属性-添加新项目属性表(名字自定义)
新建项目属性表.png

Release|X64 —> "release64OpenCV"
Debug|X64 —> "debug64OpenCV"

进入项目属性表.png

Ⅲ 3.1 配置属性

Ⅳ 3.1.1 包含目录

通用属性 >> VC++目录 >> 包含目录 中添加 include文件夹和include下的所有子文件夹路径 (注意路径,要和自己刚刚安装的路径一致):
通用属性 >> VC++目录 >> 包含目录.png

D:\OpenCV4.6.0\opencv\build\include
D:\OpenCV4.6.0\opencv\build\include\opencv2

注: OpenCV低版本可能还需要添加路径: D:\OpenCV4.6.0\opencv\build\include\opencv

Ⅳ 3.1.2 库目录

通用属性 >> VC++目录 >> 库目录 中添加如下库目录(注意路径,要和自己刚刚安装的路径一致):
通用属性 >> VC++目录 >> 库目录.png

D:\OpenCV4.6.0\opencv\build\x64\vc15\lib

Ⅳ 3.1.3 附加依赖项

最后,在通用属性 >> 链接器 >> 输入 >> 附加依赖项 中添加对应的 *.lib 文件。

debug模式下 填写如下 *d.lib 文件名:

库文件路径: D:\OpenCV4.6.0\opencv\build\x64\vc15\lib

opencv_world460d.lib

debug模式下 填写 *d.lib文件.png

release模式下 填写如下 *.lib 文件名:

库文件路径: D:\OpenCV4.6.0\opencv\build\x64\vc15\lib

opencv_world460.lib

release模式下 填写 *.lib文件.png

注:VS中release模式和debug模式配置只有这一步不一样,其他配置内容都是一样的。

4验证测如有疑问可留言沟通交流Ⅱ 4 验证测试^{如有疑问可留言沟通交流}

至此VS项目的环境配置初步完成,可以尝试运行个例程验证一下,新建一个main.cpp,代码如下:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
	std::cout << CV_VERSION;
	//                             rows,cols(先行后列)
	cv::Mat image = cv::Mat::zeros(200, 400, CV_8UC3);
	// 绘制圆形(画纸, 圆心(x,y)对应(列坐标,行坐标),半径,轮廓填充颜色(BGR),轮廓填充厚度
	cv::circle(image, cv::Point(100, 100),       50, cv::Scalar(255, 0, 0), -25);
	cv::circle(image, cv::Point(200, 100),       50, cv::Scalar(0, 255, 0), -1);
	cv::circle(image, cv::Point(300, 100),       50, cv::Scalar(0, 0, 255), 25);
	cv::imshow("Show Window", image);
	cv::waitKey(0);
	return 0;
}

运行结果:
运行结果.png

5潜在问如有疑问可留言沟通交流Ⅱ 5 潜在问题^{如有疑问可留言沟通交流}

  • Q1. 提示 error LNK1104 无法打开文件“opencv_world452d.lib”

A1: 安装多个版本或者VS重装后再次配置时可能会出现该提示。这是由于 通用属性-VC++目录-包含目录通用属性-VC++目录-库目录 中的无效继承值引起。如何删除呢?参考 简言之:

1.关闭VS,进入系统目录: C:\Users\xxx\AppData\Local\Microsoft\MSBuild\v4.0
2.使用 文本编辑器 打开文件 Microsoft.Cpp.Win32.user.props 及 Microsoft.Cpp.x64.user.props
3.修改 <IncludePath>  </IncludePath> 和 <LibraryPath> </LibraryPath> 中间内容。
4.重新打开VS,问题解决。

修改前: 修改前.png
修改后: 修改后.png

  • Q2. ...

A2: ...

6友情链如有疑问可留言沟通交流Ⅱ 6 友情链接^{如有疑问可留言沟通交流}

  1. 点云文章专栏
  2. Visual Studio文章专栏
  3. ...

代码调试不易,转载请标明出处!
如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作分享的最大动力,谢谢!

References
0.OpenCV - github
1.OpenCV发行版本
2.VS版本选择
3.环境变量太大问题解决
4.VS2017配置OpenCV
5.VS2017配置OpenCV
6.VS2017配置Opencv
6.VS2017配置OpenCV4.5.3
7.VS2017配置OpenCV4.6.0
8.VS2019配置OpenCV4.1.2
可以肯定的是学海无涯,这篇文章也会随着对 VS、PCL的深入学习而持续更新,
欢迎各位在评论区留言进行探讨交流。