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

文章目录

      • 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版本的。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第1张图片
同理可下载opencv-contrib模块,切记,切记,两者的版本要一直,这里都是3.4.4。如下图所示(点zip就可以下载了)。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第2张图片

1.2、解压文件

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

1.3、cmake安装

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

1.4、visual studio 2017的安装

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

2 cmake编译

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

2.1、设置cmake的路径

如下图所示,设置source文件目录,我这里是D:\OpenCV\opencv-3.4.4\opencv\sources;设置你编译好以后的文件存储目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第3张图片

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。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第4张图片
多次configure
有可能两次configure后,cmake目录中仍然有很多选项显示为红色,如上图所示,这应该是下载文件的过程中失败了,需要多次点击configure进行配置,不然很有可能之后生成的东西缺失,导致某些功能不能使用,最后当所有的选项都显示为白色时,表示成功了。

2.3 generate

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

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

默认会使用vs2017打开OpenCV.sln文件,打开之后如下图所示,点击生成,则开始生成文件,这个过程比较慢,我的机子用了半个小时左右。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第5张图片

2.5 查看是否具有contrib模块

生成成功后如下图所示,我这里是重新生成的。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第6张图片
之后在D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\modules(你的目录可能和我不一样,应和之前你在cmake时设置的文件目录一致)目录中查看是否有xfeature文件夹。如下图所示。如果没有,那么就说明之前的步骤有问题。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第7张图片

3 opencv开发环境配置

3.1 环境变量配置

在环境变量path中添加install文件下的bin目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\bin,x64表示64位,vc15表示vs2017。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第8张图片

3.2 vs项目属性页配置

打开vs2017,新建一个项目。点击视图–>其他窗口–>属性管理器,打开属性属性管理器,在Debug|64上右键(因为之前我们在cmake的时候选择的是64位的,所以要新建的属性页也是64为Debug的),新建属性页,我这里设置名字为opencv_contrib-3.4.4。(有可能你在很多教程中看的的不是这种配置方式,可能是点击项目的属性页来配置的,这样做比较麻烦,每次新建项目的时候都需要重新配置,而采用我这种方式,只需要每次新建项目后导入该属性页后就可以使用了,是一种一劳永逸的方法)
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第9张图片
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。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第10张图片
VC++目录–库目录
设置VC++目录–库目录,我这里是D:\OpenCV\opencv-3.4.4\opencv-contrib-cmake\install\x64\vc15\lib
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第11张图片
链接器–输入–依赖项
设置链接器–输入–依赖项,实际上就是添加上一步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   
#include   
#include  
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);            
}

来一张经典的图像处理的图片吧。
opencv3.4.4 +contrib模块在win10+vs2017的编译和配置_第12张图片
有时候,当你确定完成上面的步骤可能会报错,这时候需要重启下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

你可能感兴趣的:(OpenCV)