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

╰+哭是因爲堅強的太久メ 2022-04-14 03:39 500阅读 0赞

文章目录

      • 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版本的。
图1
同理可下载opencv-contrib模块,切记,切记,两者的版本要一直,这里都是3.4.4。如下图所示(点zip就可以下载了)。
图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编译过程中,会下载很多东西,而且又是外网,很多时候会下载失败,所以推荐使用vpn吧。

2.1、设置cmake的路径

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

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

2.3 generate

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

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

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

2.5 查看是否具有contrib模块

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

3 opencv开发环境配置

3.1 环境变量配置

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

3.2 vs项目属性页配置

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

  1. opencv_aruco344d.lib
  2. opencv_bgsegm344d.lib
  3. opencv_bioinspired344d.lib
  4. opencv_calib3d344d.lib
  5. opencv_ccalib344d.lib
  6. opencv_core344d.lib
  7. opencv_datasets344d.lib
  8. opencv_dnn344d.lib
  9. opencv_dnn_objdetect344d.lib
  10. opencv_dpm344d.lib
  11. opencv_face344d.lib
  12. opencv_features2d344d.lib
  13. opencv_flann344d.lib
  14. opencv_fuzzy344d.lib
  15. opencv_hfs344d.lib
  16. opencv_highgui344d.lib
  17. opencv_imgcodecs344d.lib
  18. opencv_imgproc344d.lib
  19. opencv_img_hash344d.lib
  20. opencv_line_descriptor344d.lib
  21. opencv_ml344d.lib
  22. opencv_objdetect344d.lib
  23. opencv_optflow344d.lib
  24. opencv_phase_unwrapping344d.lib
  25. opencv_photo344d.lib
  26. opencv_plot344d.lib
  27. opencv_reg344d.lib
  28. opencv_rgbd344d.lib
  29. opencv_saliency344d.lib
  30. opencv_shape344d.lib
  31. opencv_stereo344d.lib
  32. opencv_stitching344d.lib
  33. opencv_structured_light344d.lib
  34. opencv_superres344d.lib
  35. opencv_surface_matching344d.lib
  36. opencv_text344d.lib
  37. opencv_tracking344d.lib
  38. opencv_video344d.lib
  39. opencv_videoio344d.lib
  40. opencv_videostab344d.lib
  41. opencv_xfeatures2d344d.lib
  42. opencv_ximgproc344d.lib
  43. opencv_xobjdetect344d.lib
  44. opencv_xphoto344d.lib

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

4 测试

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

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

来一张经典的图像处理的图片吧。
图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

发表评论

表情:
评论列表 (有 0 条评论,500人围观)

还没有评论,来说两句吧...

相关阅读