opencv4.4.0(含contrib)编译+cmake+vs2017

opencv4.4.0(含contrib)编译+cmake+vs2017

目录

    • opencv4.4.0(含contrib)编译+cmake+vs2017
  • 1.下载源码
    • 1.1下载opencv-4.4.0源码
    • 1.2下载opencv_contrib-4.4.0源码
    • 1.3不能访问外网情况下需提前下载的第三方库文件
  • 2.安装编译软件
  • 3.编译以及注意事项
  • 4.参考资料

1.下载源码

1.1下载opencv-4.4.0源码

访问github上的opencv资源库,在下图1所示的界面中点击release选择所需要下载的版本(opencv-4.4.0)(如图2)
opencv4.4.0(含contrib)编译+cmake+vs2017_第1张图片

图1 选择opencv版本界面

opencv4.4.0(含contrib)编译+cmake+vs2017_第2张图片

图2 下载源码界面

这里有个小技巧:如果浏览器自带的下载模块下载慢,可以复制下载链接到迅雷下载;或者访问这个“大雷锋”的网页,他将opencv3.0.0开始全部下载下来了,放到了他的服务器上,方便了广大朋友,一个不足之处(截至本文发布)就是opencv_contirib只提供了一个,而编译是需要将opencv_contirib和opencv版本对应的,不然会报错。
所以,下面介绍如何下载对应版本的opencv_contirib-4.4.0!

1.2下载opencv_contrib-4.4.0源码

在GitHub的opencv中找到opencv_contirib(图3),进入opencv_contrib源码所在页面(图4)和上文类似,点击图4中的release,在新页面中找到对应版本的opencv_contrib即opencv_contrib-4.4.0(如图5),下载!
opencv4.4.0(含contrib)编译+cmake+vs2017_第3张图片

图3 contrib在github上的位置

opencv4.4.0(含contrib)编译+cmake+vs2017_第4张图片

图4 找到opencv_contrib各版本

opencv4.4.0(含contrib)编译+cmake+vs2017_第5张图片

图5 下载opencv_contrib-4.4.0

1.3不能访问外网情况下需提前下载的第三方库文件

如果忽略这一步骤,直接使用cmake编译,会出现警告甚至错误,这时候根据错误提示,打开编译结果文件夹中CMakeDownloadLog.txt查看下载日志,找到下载错误的地方!
接下来的操作就是为了避免上述的警告或者错误(这可能会导致后续操作的失败)!
查看源码包,在文件夹下3rdparty【就是需要的第三方的库】,但是第三方库 ffmpeg、ippicv等是空的,在用cmake配置编译时,有些需要联网下载,但是往往会下载很慢,所以可以提前下载好,放进对应的文件夹即可,这个对应的文件夹是源码文件夹下的.cache文件夹,需要新建,即在H:\opencv-4.4.0下新建.cache文件夹,注意不要鼠标右键新建文件夹,建立不了前缀名是"."的文件夹,需要用命令行,> md .cache
在这里插入图片描述
opencv4.4.0(含contrib)编译+cmake+vs2017_第6张图片
opencv4.4.0(含contrib)编译+cmake+vs2017_第7张图片
在github上的opencv页面下载第三方库和ade
opencv4.4.0(含contrib)编译+cmake+vs2017_第8张图片
下载好之后,在将文件拷贝到对应的文件夹(上面建立的)并重命名。
opencv4.4.0(含contrib)编译+cmake+vs2017_第9张图片
上述细节可以参考[1] 手把手练习–cmake+VS2015编译OpenCV3.3源码(x86版本)
此外还有一种方法,如下!
本人发现一个更加方便的办法
先不进行上述操作,在不自行下载任何第三方库的情况下,先用cmake编译。报错了没关系,我们需要的是cmake编译的过程中帮我们建立.cache文件,然后再将下载的文件拷贝到.cache中,并按照其中的空文件的名字分别进行重命名!

2.安装编译软件

安装cmake1.3.1和vs2017,这一部分网上很多资源。

3.编译以及注意事项

这一部分是重点。

  • cmake先进行一次configure,结果如下图。
    opencv4.4.0(含contrib)编译+cmake+vs2017_第10张图片
  • 接下来要进行三项改动
    第一项是勾选BUILD_opencv_world选项,这样,在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。
    第二项,自然是在OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。
    opencv4.4.0(含contrib)编译+cmake+vs2017_第11张图片
    第三项就是勾选OPENCV_ENABLE_NONFREE(上图第三方库路径上面),这个就是启用SURF特征提取算法的。
  • 完成这三项改动之后进行generate生成vs工程文件。
    后续的操作基本不会有什么问题了,详细操作参照 [2] OpenCV3.4.1+opencv_contrib编译:windows 10
    如果出现路径报错,可能就是读取含中文字符的路径报错了。
    本人遇到了这个问题,我将下载的源码放到一个没有中文字符的路径下,重新用cmake和vs编译后,就生成成功了!

最后,建议vs里面release和debug下各生成一次!
编译好的文件下载地址,劳动成果不易,不免费了! 下载界面的评论里说这个文件不能用的同志,真的冤枉人了,真的很可能是没有配置好而不是opencv的问题!
补充
关于还有报错的情况,请查看vs2017的opencv配置方法(如添加环境变量,在系统文件夹中添加文件等)。不是OpenCV的问题。

4.参考资料

[1] 手把手练习–cmake+VS2015编译OpenCV3.3源码(x86版本)
[2] OpenCV3.4.1+opencv_contrib编译:windows 10

你可能感兴趣的:(经验总结,c++,cmake,opencv)