为opencv添加contrib库
自从进入3.X时代以后,OpenCV将代码库分成了两部分,分别是稳定的核心功能库和试验性质的contrib库,之前已经讲过opencv的核心库的安装,现在讲解一下其附带的依赖库的安装。
一、Cmake配置与生成
- 安装cmake
下载地址:https://cmake.org/download/
获取最新版本:Windows win64-x64安装程序:安装程序工具已更改。首先卸载CMake 3.4或更低版本!(可执行程序,不是压缩包)

下载完毕直接运行安装,只有一个步骤要注意,
选择‘addCmake to the system PATH for all user’!!!

安装完成后,即可打开Cmake

- 下载opencv_contrib
OpenCVcontrib下载地址,打开页面,下载 ZIP。(挑选与opencv版本相匹配的contrib版本,我这里是3.4.2)
https://github.com/opencv/opencv_contrib/releases

解压缩到自定义目录(记住了位置,后面要用)(推荐放在opencv源包source下的modules目录下,不然有可能出错。。)

- Cmake的配置与生成
(1)填入‘ opencv源码的路径’以及‘准备输出的目录(自定义)’
如果还没下载opencv可以到官网下载,在opencv官网下载压缩包(格式.exe),解压缩到自定义目录。
之后,点击左下方的‘configure’

(2)弹出窗口,选择vs对应的版本。我这里是VS2017(根据自己的安装选择)

默认选项‘use default native compliers’,点击‘finish’。

(3)此时,重新编译opencv开始执行,这需要花费一点时间。
完成会出现窗口如下:命令行显示‘Configuring done’表示成功!
滑动中间窗格找到‘OPENCV_EXTRA_MODULES_PATH’添加‘刚刚下载的 opencvcontrib-master包下的modules文件夹’路径。

点击configure
然后,在点左下方的’Generate‘按钮。‘generating done’表示生成成功!!!
(4)打开输出目录,找到OpenCV.sln文件,即表示cmake已完成配置与生成。

二 、VS编译生成installer
- 打开输出目录,找到OpenCV.sln文件,双击打开。
第一次打开,需要重新生成解决方案如图所示。(需要还蛮久的时间)选择debug和X64版本。

编译成功结果如下:

- 全部生成成功后,按下图操作生成install。

- 生成成功。

打开同名路径,找到install包,包下是与opencv源包build相似的文件构架。


为了避免编译过程及操作麻烦,本文从开头到这一步的包含OPENCV及contrib和编译生成的buildenv包,本人已打包传入百度云。你可以直接下载后进行后面的操作即可。
三、重新配置OpenCV,include\libraries\附加依赖项。
- 新建一个项目

在源文件下,新建项。

- 打开属性管理器,删掉原有包含目录,改为如图所示的三个新目录。

删掉原有库目录,改为如图所示目录。

完事之后,记得点击应用,确定。
- 再一次打开属性页:修改附加依赖项
添加内容:(其实就是之前install/…/lib下的内容)
opencv_aruco342d.lib
opencv_bgsegm342d.lib
opencv_bioinspired342d.lib
opencv_calib3d342d.lib
opencv_ccalib342d.lib
opencv_core342d.lib
opencv_datasets342d.lib
opencv_dnn342d.lib
opencv_dnn_objdetect342d.lib
opencv_dpm342d.lib
opencv_face342d.lib
opencv_features2d342d.lib
opencv_flann342d.lib
opencv_fuzzy342d.lib
opencv_hdf342d.lib
opencv_hfs342d.lib
opencv_highgui342d.lib
opencv_imgcodecs342d.lib
opencv_imgproc342d.lib
opencv_img_hash342d.lib
opencv_line_descriptor342d.lib
opencv_ml342d.lib
opencv_objdetect342d.lib
opencv_optflow342d.lib
opencv_phase_unwrapping342d.lib
opencv_photo342d.lib
opencv_plot342d.lib
opencv_reg342d.lib
opencv_rgbd342d.lib
opencv_saliency342d.lib
opencv_shape342d.lib
opencv_stereo342d.lib
opencv_stitching342d.lib
opencv_structured_light342d.lib
opencv_superres342d.lib
opencv_surface_matching342d.lib
opencv_text342d.lib
opencv_tracking342d.lib
opencv_video342d.lib
opencv_videoio342d.lib
opencv_videostab342d.lib
opencv_xfeatures2d342d.lib
opencv_ximgproc342d.lib
opencv_xobjdetect342d.lib
opencv_xphoto342d.lib

- 添加环境变量
复制路径:

增加环境变量到Path:

整个开发环境部署完工!!!
但是要注意,每次执行项目时要重新设置Debug为‘x64’,否则会报错。

这样,一个完整的包含OpenCV的C++基础工程就创建完毕了,后续的开发只需在这个工程的基础上进行编程就可以了。
参考资料:
1、OpenCV contrib 3.2.0扩展模块添加与编译(VS2017+OpenCV3.2.0)详解与排坑
2、直接用的编译好的包的百度云链接
为opencv添加contrib库的更多相关文章
- 为OPENCV添加freetype支持并显示中文字符(在mac上编译opencv及contrib库)
在mac电脑上管理这些gnu的库一般都使用Homebrew,但总有一些你个性化的需要是官方的Homebrew配方无法满足的.比如在屏幕的输出中使用中文字符. 在OPENCV中输出UTF8字符集早已经有 ...
- 配置使用OpenCV静态链接库
配置opencv静态链接库需要用到:staticlib 在配置链接器->附加库目录时应该为staticlib的路径.同理若是利用动态链接库则只需要lib的路径: 动态链接库则使用lib,然而在使 ...
- vs2010 静态使用 opencv 2.46 库
下载opencv2.46的库,假设解压到OpenCV246,设置如下: 在工程的c++的include目录下添加:OpenCV246\opencv\build\include 在工程的c++的lib目 ...
- 在VS中添加lib库的三种方法
注意: 1.每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Prop ...
- 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)
在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面: ·Quartus不支持Testbench: ·调用了megafunction或者lpm库之类的Alte ...
- 在ASP.NET 5中如何方便的添加前端库
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:ASP.NET 5和之前的ASP.NET版本有很大的不同,其中之一就是对前端库的管理不再使用Nuget,而 ...
- Auty自动化测试框架第七篇——添加动作库和常量文件库
[本文出自天外归云的博客园] 添加动作库 因为有很多调用的action类如果一直保存在utils中会让utils库不可维护,所以规定utils库中只放和框架本身有关的工具类,和脚本内容相关的工具类都放 ...
- AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
点击项目设置按钮 依次选择 App > Dependencies 1. 直接搜索法 依次选择 + > Library dependency 这里的搜索一定要是全名的,不然搜不到哦 下图所表 ...
- iOS——Xcode中添加第三方库
一.只有.h和.a文件的库 1.向项目中添加三方库文件 如果添加的第三方库只有.h和.a文件,直接把文件夹拖进项目下面,这时会弹出下面的提示框,一定要勾选下面选择的选项: 这里要注意,在Add to ...
随机推荐
- 【函数】isinstance内建函数(小窗help)
#学到了第八天,还有很多没有理解,不过,没关系,相信任何复杂的问题都是由简单的组成,只有将每一个细节理解到位,自然问题迎刃而解 今天遇到了isinstace函数,忘了,先看一下语法 查百度附上链接:h ...
- JAVA 类的三大特性,封装,继承,多态 的一些发现总结
< 一 > 封装 < 二 > 继承 1,关于父类中的私有属性和方法,子类能不能访问的问题 1.1,子类不能通过继承拥有父类的私有属性和方法 1.2,子类可以从父类继承下来的 方 ...
- BBS(第三天) 如何吧用户上传的图片文件保存到本地
1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务器会对外公开一下服务器静 ...
- Sql入门学习——关系范式
--------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...
- Elasticsearch 整合spring(不是sprig boot)
公司做统计任务,有使用Es做聚合操作,使用的是自己封装的版本,这边整合下原生spring,做下学习记录,随便看一下,发现差不多都是spring boot的案例...我该怎么办,...发现整合的过程其实 ...
- PHPMailer出现SMTP connect() failed.
很可能是端口问题,最好把$mailer->SMTPSecure和$mailer->Port分别设置为ssl与465或者tls与587,否则某些浏览器不接受不安全的链接,导致$mailer- ...
- C语言冷知识
C语言属强类型语言(1)编程语言分2种:强类型语言和弱类型语言.强类型语言中所有的变量都有自己固定的类型,这个类型有固定的内存占用,有固定的解析方法:弱类型语言中没有类型的概念,所有变量全都是一个类型 ...
- JS 高级总结
一.查找HTML元素 通常,通过 JavaScript,您需要操作 HTML 元素. 1.通过 id 找到 HTML 元素 2.通过标签名找到 HTML 元素 3.通过类名找到 HTML 元素 提示: ...
- 第一章 C++语言入门
标准数据类型 C++语言提供了丰富的数据类型,如整数类型.实数类型(浮点数).字符类型等.每种数据类型均有均值范围,Dev-C++(4.9.9.2)是Windows平台 ...
- python动态模块导入
首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py 官方推荐: import importlib aa = importlib.import_module('lib.aa') c = ...