windows编译opencv+opencv_contrib 以及解决cmake下载boostdesc_bgm等文件失败问题

windows编译opencv+opencv_contrib 以及解决cmake下载文件失败问题

一、需要下载的软件

  • opencv下载:下载连接,选择你想要的版本下载Source code,我下载的是410版本,如果你需要训练xml分类器的可执行文件,就用3.4.1(别问为什么,我就试过这一个,是有的!)
  • opencv_contrib下载:下载链接,选择你要下载的版本,注意openv和opencv_contrib一定是要对应的版本
  • Visual Studio 2019,我下载的是2019,当然其他的版本也可以啦!不多介绍,网上教程很多。
  • Cmake下载:下载地址,一般选择最新的版本下载就行了。

二、使用Cmake生成工程文件

首先是新建build文件夹,其实这个可以放在任何位置,不过为了方便我把它跟opencv还有opencv_contrib放在同一个文件夹底下了,文件结构如图:
在这里插入图片描述
上图中的download文件夹稍后用到的时候再说,前面的操作可以不管。

然后打开Cmake

Where is the source code 选择opencv-4.1.0文件夹,因为我直接下载的源代码,所以直接选opencv-4.1.0文件夹,如果你是在官网下的exe文件解压的就选里面的src文件夹。

Where to build the binaries 选择你之前新建的build文件夹的位置,如图:
在这里插入图片描述
然后点击Configure,会弹出来如下对话框:在这里插入图片描述
我选的Visual Studio 2019,因为我安装的是这个版本的,你就选你安装的哪个版本就行了
选择Finish,稍等一会儿,期间会下载一些文件,一般都是下载失败的,不过不要慌,出现Configure done 如图:
在这里插入图片描述
在Search里面输入MOD,添加OPENCV_EXTRA_MODULES_PATH值,即在Value处填入opencv_contrib路径下modules文件夹的路径,如下图

在这里插入图片描述
改好之后再次点击Configure,出现configure done之后点击Generate,最后应该是下图这样的:
在这里插入图片描述
中间有报错下载失败的,我们先不管,进入下一步骤

三、使用VS编译

打开build文件夹,双击OpenCV.sln文件,用VS打开,点击左侧解决方案资源管理器展开,将Debug改为Release(按自己需求选择Debug还是Release)
在这里插入图片描述

选中解决方案"Opencv" 右击选择 重新生成解决方案这个稍微需要点时间,耐心等一下
在这里插入图片描述
可以看见,成功139个,失败4个,有失败的肯定不行啊,失败的原因就是因为之前cmake的时候下载文件失败了,所以编译的时候找不到文件,我们打开build文件夹下的 CMakeDownloadLog.txt 文件,以其中一个未下载成功的文件为例:
在这里插入图片描述
可以看见第一行后头是有一个网址的,这个就是下载失败的文件的下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i ,你把该地址复制到浏览器就可以下载文件了(得搭梯子),其他的也是同样的操作。

我把所有的可能会下载失败的文件都下载下来传到百度云了,下载地址:链接:https://pan.baidu.com/s/1K0xH0GTh6LnaecNiT–hGQ
提取码:7m3w
就是我开始说的opencv文件夹下的download文件夹,我把所有文件都放在download文件夹里了
在这里插入图片描述
然后转到VS,
再次右键解决方案资源管理器,选择生成解决方案注意不是重新生成解决方案了!)你就可以看见错误信息了
在这里插入图片描述

  1. D:\opencv\opencv_contrib-4.1.0\modules\xfeatures2d\src\boostdesc.cpp(653,20): fatal error C1083: 无法打开包括文件: “boostdesc_bgm.i”: No such file or directory

  2. D:\opencv\opencv_contrib-4.1.0\modules\xfeatures2d\src\vgg.cpp(490,20): fatal error C1083: 无法打开包括文件: “vgg_generated_120.i”: No such file or directory

那么找到opencv_contrib-4.1.0\modules\xfeatures2d\src\boostdesc.cpp文件,打开,可以看见在653行左右有一个 #include “boostdesc_bgm.i”
在这里插入图片描述
我们将他改成如下图:(所有#include 后面都得改啊,不只是下图显示的几个,后面还有!):
在这里插入图片描述
即改成你下载的该文件的位置(D:\opencv\download\是因为我文件存在该文件夹里的)

第二个错误也是相同的操作,打开D:\opencv\opencv_contrib-4.1.0\modules\xfeatures2d\src\vgg.cpp 在488行左右,修改好以后如下图:
在这里插入图片描述

下面还有两个错误
在这里插入图片描述

D:\opencv\opencv_contrib-4.1.0\modules\xfeatures2d\test\test_features2d.cpp(51,10): fatal error C1083: 无法打开包括文件: “features2d/test/test_detectors_regression.impl.hpp”: No such file or directory

D:\opencv\opencv_contrib-4.1.0\modules\xfeatures2d\test\test_rotation_and_scale_invariance.cpp(7,10): fatal error C1083: 无法打开包括文件: “features2d/test/test_detectors_invariance.impl.hpp”: No such file or directory

这两个错误简单,只需要将opencv-4.1.0/modules/ 文件夹下features2d文件夹复制到build文件夹下即可

然后再次右键解决方案资源管理器,选择生成解决方案,出现失败0个就可以了
在这里插入图片描述
在这里插入图片描述
然后找到INSTALL,右击,选择“仅用于项目->仅生成INSTALL” 就可以啦!dll以及lib文件还有头文件在build/install文件夹下。
至此opencv4.1.0+opencv_contrib4.1.0就编译完成了!

编译opencv3.4.1的时候还遇见了

D:\opencv\opencv
3.4.1\modules\stitching\include\opencv2/stitching/detail/matchers.hpp(52,12): fatal error C1083: 无法打开包括文件: “opencv2/xfeatures2d/cuda.hpp”: No such file or directory

解决方法:将opencv_contrib-3.4.1 \modules \xfeatures2d \include \opencv2文件夹中所有文件复制到 build \opencv2 文件夹底下(即 将两个opencv2文件夹合并)

然后再次选择生成解决方案就可以啦,后面步骤就跟上面一样了,最后生成的opencv_createsamples.exe和opencv_traincascade.exe文件在build \ install \ bin文件夹底下

  • 14
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值