文章目录

  • 1 准备工作
    • 1.1、下载opencv源文件
    • 1.2、解压文件
    • 1.3、cmake安装
    • 1.4、visual studio 2017的安装
  • 2 cmake编译
    • 2.1、设置cmake的路径
    • 2.2 configure
    • 2.3 generate
    • 2.4 点击OpenCV.sln文件进行生成
    • 2.5 查看是否具有contrib模块
  • 3 opencv开发环境配置
    • 3.1 环境变量配置
    • 3.2 vs项目属性页配置
  • 4 测试

首先需要说明下,我的电脑是win10、64位的,使用vs2017作为常用的C++IDE。opencv3.4.4是最近才更新的,不到半个月。不过这两天听说opencv也刚出了4.0版本,还没有去体验,现在还是使用opencv3.4.x版本的吧,毕竟用的人多,出了问题也好Google。之前电脑上配置了3.4.0版本的,可是由于opencv在3.4.1版本后加入了许多关于深度学习的模块,显然3.4.0版本是无法体验的,所以就打算装个3.4.4版本的,尝尝鲜。

1 准备工作

1.1、下载opencv源文件

推荐去GitHub上下载吧,地址,点进去之后,选择对应模块,找到release,如下图所示,点击,然后下载对应版本,这里选择opencv3.4.4版本的。

同理可下载opencv-contrib模块,切记,切记,两者的版本要一直,这里都是3.4.4。如下图所示(点zip就可以下载了)。

1.2、解压文件

将上述得到的两个文件解压。如下图所示。请注意,其中有个文件是.exe,不要紧张,和安装的文件不同,其实就是一个解压过程。这里我都将其解压到D:\OpenCV\opencv-3.4.4,你可以自己重新设置自己的目录,不过一定要记住,后面要用。

1.3、cmake安装

由于我电脑上已经有了cmake,这里我就不说明cmake的安装过程了,网上有很多教程。

1.4、visual studio 2017的安装

我这里使用的是vs2017的专业版,当然肯定是破解的了。vs的安装很简单,自行百度吧。

2 cmake编译

在cmake编译过程中,会下载很多东西,而且又是外网,很多时候会下载失败,所以推荐使用vpn吧。

2.1、设置cmake的路径

如下图所示,设置source文件目录,我这里是D:\OpenCV\opencv-3.4.4\opencv\sources;设置你编译好以后的文件存储目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake。

2.2 configure

第一次configure
设置目录以后,点击configure会让你配置你需要编译的格式,我这里选择的是visual studio 15 2017-win64,表示使用vs2017,win64系统。接下来就可以第一次configure了。
第二次configure
在完成了第一次configure以后,需要将OPENCV_ETREA_MOUDLES_PATY的路径更改为之前解压的contrib文件下的moudles文件路径,我这里设置为:D:\OpenCV\opencv-3.4.4\opencv_contrib-3.4.4\modules,如下图所示。设置完成后,再点击configure。

多次configure
有可能两次configure后,cmake目录中仍然有很多选项显示为红色,如上图所示,这应该是下载文件的过程中失败了,需要多次点击configure进行配置,不然很有可能之后生成的东西缺失,导致某些功能不能使用,最后当所有的选项都显示为白色时,表示成功了。

2.3 generate

在configure成功之后,窗口会提示configure done,接下来就可以点击generate了,当显示generate done表示生成成功。

2.4 点击OpenCV.sln文件进行生成

默认会使用vs2017打开OpenCV.sln文件,打开之后如下图所示,点击生成,则开始生成文件,这个过程比较慢,我的机子用了半个小时左右。

2.5 查看是否具有contrib模块

生成成功后如下图所示,我这里是重新生成的。

之后在D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\modules(你的目录可能和我不一样,应和之前你在cmake时设置的文件目录一致)目录中查看是否有xfeature文件夹。如下图所示。如果没有,那么就说明之前的步骤有问题。

3 opencv开发环境配置

3.1 环境变量配置

在环境变量path中添加install文件下的bin目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\bin,x64表示64位,vc15表示vs2017。

3.2 vs项目属性页配置

打开vs2017,新建一个项目。点击视图–>其他窗口–>属性管理器,打开属性属性管理器,在Debug|64上右键(因为之前我们在cmake的时候选择的是64位的,所以要新建的属性页也是64为Debug的),新建属性页,我这里设置名字为opencv_contrib-3.4.4。(有可能你在很多教程中看的的不是这种配置方式,可能是点击项目的属性页来配置的,这样做比较麻烦,每次新建项目的时候都需要重新配置,而采用我这种方式,只需要每次新建项目后导入该属性页后就可以使用了,是一种一劳永逸的方法)

VC++目录–包含目录
设置VC++目录下的包含目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include、D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include\opencv、D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\include\opencv2。

VC++目录–库目录
设置VC++目录–库目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\lib

链接器–输入–依赖项
设置链接器–输入–依赖项,实际上就是添加上一步lib文件下的所有文件,3.4.4版本为:

opencv_aruco344d.lib
opencv_bgsegm344d.lib
opencv_bioinspired344d.lib
opencv_calib3d344d.lib
opencv_ccalib344d.lib
opencv_core344d.lib
opencv_datasets344d.lib
opencv_dnn344d.lib
opencv_dnn_objdetect344d.lib
opencv_dpm344d.lib
opencv_face344d.lib
opencv_features2d344d.lib
opencv_flann344d.lib
opencv_fuzzy344d.lib
opencv_hfs344d.lib
opencv_highgui344d.lib
opencv_imgcodecs344d.lib
opencv_imgproc344d.lib
opencv_img_hash344d.lib
opencv_line_descriptor344d.lib
opencv_ml344d.lib
opencv_objdetect344d.lib
opencv_optflow344d.lib
opencv_phase_unwrapping344d.lib
opencv_photo344d.lib
opencv_plot344d.lib
opencv_reg344d.lib
opencv_rgbd344d.lib
opencv_saliency344d.lib
opencv_shape344d.lib
opencv_stereo344d.lib
opencv_stitching344d.lib
opencv_structured_light344d.lib
opencv_superres344d.lib
opencv_surface_matching344d.lib
opencv_text344d.lib
opencv_tracking344d.lib
opencv_video344d.lib
opencv_videoio344d.lib
opencv_videostab344d.lib
opencv_xfeatures2d344d.lib
opencv_ximgproc344d.lib
opencv_xobjdetect344d.lib
opencv_xphoto344d.lib

调加完依赖项后,点击应用,属性页就配置完成了,以后在新的项目中就可以直接使用该属性页进行配置。至此全部配置就已完成,下面就测试一下。

4 测试

使用一下代码进行测试,主要是一个显示图片的功能。

#include <iostream>
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;int main()
{Mat img = imread("E:/zengtudou/myOpenCV/testfor3.4.4/Project1/girl.jpg");//读入一张图片namedWindow("Test");     //创建一个名为Test窗口imshow("Test", img);   //窗口中显示图像waitKey(0);
}

来一张经典的图像处理的图片吧。

有时候,当你确定完成上面的步骤可能会报错,这时候需要重启下vs2017就可以解决了。
参考文章:
https://elody-07.github.io/opencv3.4.1+contrib+cmake3.11.0
https://blog.csdn.net/weixin_37800680/article/details/72566294
https://blog.csdn.net/kuweicai/article/details/78046257

opencv3.4.4 +contrib模块在win10+vs2017的编译和配置相关推荐

  1. Win10+VS2017+Ceres-Solver-1.13.0配置

    一.工作准备 VS 2017 Cmake Ceres-solover最新版以及早期版本 gflags glog Eigen 注:下载后的包如下图所示,解压缩所有包至合适位置,本文以"D:\P ...

  2. opencv3.0中contrib模块的添加

    opencv从2.x到3.x是一个很大的转变,对于很多功能不完善.性能不稳定的模块,都被方法了extra_modules(扩展模块)里面了.这样倒是稳定了,但是对于我这样的新手,要添加这些扩展模块却是 ...

  3. Win10+VS2017的C++属性配置表

    本人在tensorflow-r1.8.0的C++ API编译安装完毕后,写程序测试的时候一直会报一个错误 2019-08-16 13:59:01.528671: E D:\Tools\tensorfl ...

  4. win10+vs2017+PCL1.8.1配置过程及注意事项

    最近需要用到PCL库,在此把配置过程中需要注意的问题记录下来,配置过程中参考了很多博主,在此感谢他们的帮助. pcl1.8.1的相关文件在这里  https://pan.baidu.com/s/1Qd ...

  5. OpenCV3中nonfree不存在以及contrib模块的添加的问题及解决办法

    主要问题: 1. OpenCV 3应用编程时,无法使用SURF/SIFT等nonfree算法,甚至根本不存在nonfree头文件. 2. 对opencv及opencv_contrib 进行cMake时 ...

  6. 软件安装——Ubuntu14.04+OpenCV3.1+contrib模块+测试

    一.安装opencv3.1+contrib 安装依赖项 sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-d ...

  7. python卸载opencv包_Ubuntu16.04卸载opencv2.4.9并安装opencv3.2.0+contrib

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 需要用到opencv中的surf和sift算法,机器上只有opencv3.2,没有扩展包,于是 ...

  8. VS2017+openCV3.4.6+openCV3.4.6 contrib扩展模块安装

    一.VS2017+openCV3.4.6+openCV3.4.6 contrib扩展模块安装 https://blog.csdn.net/YHxiaohao/article/details/10590 ...

  9. 【OpenCV 笔记】编译Opencv contrib模块

    前言:opencv官方提供的build并不包含全部的功能,比如本人最近接触到的SURF特征提取,这些功能都集成在了contrib模块中,需要我们自己到opencv的官方GitHub上下载contrib ...

最新文章

  1. JAVA wait(), notify(),sleep具体解释
  2. Java设计模式-七大设计原则
  3. review what i studied `date` - 2017-4-11
  4. Python词云 wordcloud 十五分钟入门与进阶
  5. 外国人起争执时最常说的话
  6. java 数组的方法_数组常用方法
  7. [NOTE] 关于DNSLog平台的使用
  8. 不同情况通知执行的顺序
  9. 嵌入式C语言编程——.h文件与.c文件
  10. IntelliJ IDEA 设置代码检查级别
  11. fastadmin在html中查询数据,FastAdmin模块开发快速上手
  12. 晨哥真有料丨等女神分了我上位!
  13. 灰度MANA信托增持729.04万MANA,FIL持仓增长185%
  14. Spring Framework 源码解析课程大纲
  15. mysql 读取oracle数据_Python中Pandas通过read_sql方法从Mysql或Oracle数据库中读取数据帧(DataFrame)...
  16. vue页面回显数据_解决vue表单回显数据无法修改的问题
  17. C# 匿名对象的写法
  18. ckeditor 部分保存按钮去除_怎样去除mp4视频中的水印呢
  19. Java Serializable 序列化 与 对象克隆
  20. javafx 通过 css 去掉 tableView 滑动条

热门文章

  1. 微信朋友圈信息流可能采用算法排序吗?
  2. 判断windows系统类型和IE浏览器版本
  3. 微信公众号广告市场如此之大,还不抓住这个淘金的好机会
  4. Java的在哪里找labor_LaborDay哪里玩
  5. java-读取Excel文件,自定义读取固定行、列(不区分xls、xlsx)
  6. JAVA从零开始开发区块链技术
  7. 【通讯录教程】Excel表格批量手机号码导入安卓和苹果手机的通讯录,下面教你方法
  8. php-resque 简单的php消息队列
  9. vue请求拦截 给所有的api接口的请求 params 带上一个存储的值及qs的安装
  10. 潘金莲给武松的最后一封信