记录一下opencv-contrib的编译使用
一、来由
公司需求进行多图拼接算法,在opencv提供的Stitcher类当中默认的算子是ORB,我想尝试使用SIFT和SURF算子,经过一番查找发现这两个算子需要opencv的超集库支持——“opencv-contrib”。故对编译这个超集库的流程进行记录,以防以后忘记怎么操作,同时我也会把我编译出来的lib、dll以及头文件放在百度网盘,能帮助到大家我也很开心,链接会放到最后。
二、具体操作
1)下载对应的源码即软件
需要下载的有:
需要注意的是opencv和opencv超集扩展包的版本一定要统一!!!!
在Tags这里选择相同的版本即可。

cmake下载安装版本或者直接使用的版本都可以。
下载完opencv源码和超集扩展包得到两个压缩包文件

将其解压得到opencv_contrib-4.10.0和opencv-4.10.0文件夹,将opencv_contrib-4.10.0放进opencv-4.10.0文件夹当中,如下:

之后建立新的文件夹用于存放cmake编译之后的文件,如下:

2)使用cmake对源码进行编译
打开下载好的cmake软件——cmake-gui

在对应处分别选中之前解压得到的2个文件夹,然后点击——“Configure”。新出来的界面按照图所示填写即可。我这里使用是visual studio版本为2022,大家需要按照自己安装的版本进行选择。

直接点击——“Finish”然后等待完成即可,这里需要耗费一定的时长。编译完就是这样的界面:

都是红红一片!但是别慌,我们还需要对具体的项目进行配置,分别是:
- OPENCV_ENABLE_NONFREE——使能带版权的功能包
- BUILD_opencv_world——将功能包编译成一个lib和dll文件
- OPENCV_EXTRA_MODULES_PATH——超集包位置
在Search框中进行检索
OPENCV_ENABLE_NONFREE和BUILD_opencv_world直接打勾即可,OPENCV_EXTRA_MODULES_PATH则选中前面的opencv_contrib-4.10.0文件夹下面的model文件夹,如下图:

最后再次点击——“Configure”,等待编译完成,直到界面没有红色的选项为止。之后点击——“Generate”生成适用Visual Studio打开的工程。
3)利用Visual Studio编译生成dll文件和lib文件
打开我们之前选中的opencv-4.10.0-windows-world文件夹,找到里面的sln文件:

打开之后进行如下操作:
(1)右击ALL_BUILD选择生成

(2)右击INSATLL选择——“仅用于项目”——“仅生成INSATLL”

之后就完成了,整个生成过程会比较慢,比较吃运行内存。最后可以在前面的opencv_contrib-4.10.0文件夹下面找到所需的lib文件和dll文件

include文件也可以在opencv_contrib-4.10.0——install路径下找到:

至此大功告成!!!!!
我自己编译的文件链接为:百度网盘链接
记录一下opencv-contrib的编译使用的更多相关文章
- Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)
Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details ...
- opencv3.3.1 + win64 + contrib + cuda 编译
一 . opencv3.3.1 + win64 + contrib + cuda 编译 1.下载各种依赖 下载安装cuda https://developer.nvidia.com/cuda- ...
- vs2008+cmake2.8+OpenCV2.8.4配置过程中OpenCV.sln重编译部分工程失败
解决方法来自此链接 http://www.tuicool.com/articles/qiQBb2N vs2008+cmake2.8+OpenCV2.8.4配置过程 1.解压opencv2.4.8 2. ...
- ubuntu 16.04 安装 opencv +contrib (3.2.0) + python 3.5
环境: - ubuntu 16.04 - OpenCV + contrib 3.2.0 (文中附下载链接) - Python 3.5 基于其他环境的配置应该大同小异. 没时间解释了,直接上车. 更新下 ...
- vs完整编译Opencv+contrib
准备条件 Opencv源码(以4.3.0为例) OpenContrib源码(以4.3.0)为例 最新版的CMake GUI CMake 生成项目 设置source code 和生成的build文件夹 ...
- OpenCV 4.1 编译和配置
OpenCV 4.0 版本,历时3年半,终于在2018年圣诞节前发布了,该版本增加的新功能如下: 1) 更新代码支持 c++11 特性,需要兼容 c++11 语法的编译器 2)增加 dnn 中的模块功 ...
- 学习 opencv---(6)玩转opencv源代码:生成opencv 工程解决方案与opencv 源码编译
在这篇中,我们探讨如何通过已安装的opencv选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码.我们可以对其源代码进行再 ...
- 树莓派 安装 OpenCV 使用CMake 编译工程 最新版2015
一.安装make,cmake sudo apt-get install make sudo apt-get install cmake 二.下载deb包 去这里下载libopencv_2.4.10.d ...
- CUDA跟OpenCV的混合编程,注意OpenCV需要重新编译
1.注意事项 编译的办法参见: http://blog.csdn.net/wangyaninglm/article/details/39997113 以下是程序代码,网上搜的例子: 注意事项:32 ...
- OpenCV学习:OpenCV源码编译(vc9)
安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要 ...
随机推荐
- git忽略文件夹中除了指定的文件外的其他所有文件
**/test/* !**/test/a.py
- 海康威视测速&闪速测速
海康威视64g 闪速128g
- 新一代监控神器Prometheus+Grafana介绍及使用
一.介绍 1.什么是Prometheus? 普罗米修斯是一个开源的系统监控及报警工具,在2016年加入了 Cloud Native Computing Foundation,是继Kubernetes之 ...
- Unity 中 Color 与 Color32 的区别
1. 存储方式 Color用四个浮点数(float)来表示RGBA,取值范围均是0到1 举例: var orange = new Color(1f, 0.5f, 0f, 1f); 而Color32使用 ...
- 前后端沟通 naming conversion 转换需要知道的事
c# 是 pascal case, js 是 camel case 所以在做 web api 和 odata 的时候经常需要转换. 早年 web api 是依赖 Newtonsoft json (JS ...
- Angular 18+ 高级教程 – 国际化 Internationalization i18n
介绍 先讲讲名词. Internationalization 的缩写是 i18n,中文叫国际化. Globalization 是 Internationalization 的同义词,都是指国际化. L ...
- 实用技巧:根据menuconfig定位一个驱动涉及到的源文件
根据menuconfig定位一个驱动涉及到的源文件,这个是很常用的,因为有时候你需要参考别人的驱动代码.新手不知道如何定位驱动相关源码,这篇文章将告之. 假设我手头有一块开发板,现在我想要获取板载ov ...
- Task 笔记
1.计时器类Stopwatch Stopwatch stopwatch=new Stopwatch() stopwatch.Start();//开始计时 stopwatch.Stop();//停止计时 ...
- Diffusion系列 - DDPM 公式推导 + 代码 -(二)
Denoising Diffusion Probabilistic Model(DDPM)原理 1. 生成模型对比 记 真实图片为 \(x_0\),噪声图片为 \(x_t\),噪声变量 \(z\sim ...
- kotlin类与对象——>委托、委托属性
1.委托 1.1 委托的实现 委托模式已经证明是实现继承的一个很好的替代方式,而 Kotlin 可以零样板代码地原生支持它. Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 ...