您现在的位置是:首页 >技术杂谈 >编译opencv4.7.0 + opencv_contrib 记录网站首页技术杂谈

编译opencv4.7.0 + opencv_contrib 记录

小刚学長 2024-06-17 10:19:24
简介编译opencv4.7.0 + opencv_contrib 记录

最近一个项目需要涉及到图像拼接算法,网上了解一番,也大致有思路:

1. 利用surf算法查找特征点

2. 过滤掉一些,获取good点

3. 然后进行配准(图像扭曲),对接

4. 形成最终拼接图片

这些工作,最简单也是最快捷的方式就是opencv

于是就开始研究opencv,windows版本可以直接在官网上下载,也可以在国内一些镜像网站上下载,这里需要注意,如果直接msi版本的话,是不支持surf算法。拼接的时候,需要surf,因此需要自己手动编译一个库出来。

下面就是本人的编译opencv的一些经历

1、准备工作

        经过多次反复试验,准备工作还是需要的,网上很多文章都有描述,但总是有点缺少点什么。

        

CMake需要安装需要这个配置config
gcc也需要安装一个
VS2017或2020之类

也要安装好

并且要重启下,支持windows c++各种组件

安装后,需要重启电脑

需要这个工具编译

   为了避免后续麻烦,安装vs系列,参考如下连接:

解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)_cmd运行cmake..出错_翟天保Steven的博客-CSDN博客

应该倒过来操作比较好,先安装vs系列,然后再安装CMake。

如果,需要增加组件,双击安装包,然后选择 修改 ,这样就可以进行+-组件

2. 下载opencv

        直接在官网也可以,一般速度较慢。建议自带梯子或高级办法(这个还是比较重要,因为后面编译的时候,还要下载一些,没有梯子的话,后面下载肯定会失败,导致最终失败)

        opencv 源到可以通过以下方式下载:

        OpenCV/opencv_contrib国内快速下载 | 绕云技术笔记

        

        需要下载两个:opencv以及contrib,且需要版本一致

3. 编译opencv

        网络上也有比较好的笔记,我也是主要参考笔记(谁叫他写的详细)

        Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d_NOAHCHAN1987的博客-CSDN博客

        这里步骤一定要认真仔细的执行,否则会很奇怪,不要问我为什么

        

        每个人情况,不太一样:

        config之后,(理论上不能有红色字出现)

 一定要打开 CMakeDownloadLog.txt  看下有没有哪些下载不成功的。

否则,虽然有些错误可以进行下一步,且貌似很顺利编译出最终lib的,但有问题的!!

我就碰到 ippicv 这个模块失败,没引起注意,实际demo的时候,还是发现surf没有装好(百思不得其解)

又从头搞了好几遍!!!好几遍!!!

通用解决办法:

IPPICV: Download failed: 6;“Couldn‘t resolve host name“_free_luojing的博客-CSDN博客

基本思路:由于国内连接无法下载,只能借助 GitHub Proxy 代理加速 进行下载,要一个个下载,速度比较快,麻烦是麻烦点

这里面还碰到一个疑惑:

在编译debug版本的时候,会出现失败

        具体原因vs限制了,暴力解决办法,就是关闭这个限制(这样不能调试opencv库里代码)

选择 opencv_world 点击右键或菜单 - 项目 - 属性

 

 再,点击 右键 - 仅用于项目 - 仅生成 open_world ;先编译这个库,编译成功后,再生成ALL_BUILD  再生成 INSTALL

 这样才能保证debug版本编译成功,否则debug版本是编译失败的

 

4.  最后是验证

        如果以下代码:

Ptr<SURF> Detector = SURF::create(2000);  没有崩溃,说明是安装好了

补充下:

Qt 上:需要添加 外部库,把库添加进来,

并且增加一个include的引用

INCLUDEPATH += xxxx/build/include

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。