一、来由

公司需求进行多图拼接算法,在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的编译使用的更多相关文章

  1. Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)

    Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details ...

  2. opencv3.3.1 + win64 + contrib + cuda 编译

    一 . opencv3.3.1  + win64 + contrib + cuda   编译 1.下载各种依赖 下载安装cuda  https://developer.nvidia.com/cuda- ...

  3. 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. ...

  4. ubuntu 16.04 安装 opencv +contrib (3.2.0) + python 3.5

    环境: - ubuntu 16.04 - OpenCV + contrib 3.2.0 (文中附下载链接) - Python 3.5 基于其他环境的配置应该大同小异. 没时间解释了,直接上车. 更新下 ...

  5. vs完整编译Opencv+contrib

    准备条件 Opencv源码(以4.3.0为例) OpenContrib源码(以4.3.0)为例 最新版的CMake GUI CMake 生成项目 设置source code 和生成的build文件夹 ...

  6. OpenCV 4.1 编译和配置

    OpenCV 4.0 版本,历时3年半,终于在2018年圣诞节前发布了,该版本增加的新功能如下: 1) 更新代码支持 c++11 特性,需要兼容 c++11 语法的编译器 2)增加 dnn 中的模块功 ...

  7. 学习 opencv---(6)玩转opencv源代码:生成opencv 工程解决方案与opencv 源码编译

    在这篇中,我们探讨如何通过已安装的opencv选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码.我们可以对其源代码进行再 ...

  8. 树莓派 安装 OpenCV 使用CMake 编译工程 最新版2015

    一.安装make,cmake sudo apt-get install make sudo apt-get install cmake 二.下载deb包 去这里下载libopencv_2.4.10.d ...

  9. CUDA跟OpenCV的混合编程,注意OpenCV需要重新编译

    1.注意事项 编译的办法参见: http://blog.csdn.net/wangyaninglm/article/details/39997113   以下是程序代码,网上搜的例子: 注意事项:32 ...

  10. OpenCV学习:OpenCV源码编译(vc9)

    安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要 ...

随机推荐

  1. 国内IT行业67家外包公司,有多少程序员在里面待过?

    之前写过一篇关于外包公司的文章, <什么是软件外包公司?要不要去外包公司?> 很多粉丝看了后,感觉都在说自己, 存在即合理, 外包大幅度降(可)低(以)了(压)用(榨)人(更)成(多)本( ...

  2. 【原创】VSCode 快捷键汇总(已整理成一张 A4 纸大小,方便打印)

    由于经常记不住 VSCode 的快捷键,每次查找不方便,于是乎做了一份 VSCode 快捷键汇总,已整理成一张 A4 纸大小,方便打印,这样查找就直观多了~ 直接保存图片,横向打印即可.

  3. web静态和动态的区别

    一.静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告诉服务器我现在 ...

  4. 安卓系统使用chrome插件(以yandex安装油猴为例)

    以tampermonkey为代表的Chrome插件广受好评,但由于Chrome在安卓系统并不支持令人遗憾.所以带来安卓手机使用Chrome插件的教程. 一,首先下载安卓开源浏览器(个人推荐yandex ...

  5. 万字长文带你窥探Spring中所有的扩展点

    写在前面 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片.Springboot更是封装了Spring,遵循约定大于配置,加上自动装配 ...

  6. 击败全球上千参赛队伍,合合信息获ICDAR“文本篡改检测”赛道冠军

    AI技术的快速发展激发了人们对于美好未来的畅享,也带来了潜在的危机,数据泄露.电信诈骗等系列风险与隐患开始浮出水面.利用科技手段构建可信的技术发展环境,保护使用者的信息及财产安全,正在成为行业共识. ...

  7. 深度学习/NLP中的Attention注意力机制

    首先是整体认知,Attention的位置: 传送门1:Attention 机制 传送门2:Attention用于NLP的一些小结 一句话概括:Attention就是从关注全局到关注重点. 借鉴了人类视 ...

  8. CPRFL:基于CLIP的新方案,破解长尾多标签分类难题 | ACM MM'24

    现实世界的数据通常表现为长尾分布,常跨越多个类别.这种复杂性突显了内容理解的挑战,特别是在需要长尾多标签图像分类(LTMLC)的场景中.在这些情况下,不平衡的数据分布和多物体识别构成了重大障碍.为了解 ...

  9. BOOST 定时器 stop探究

    Asio是一个建立在Boost所提供的相关组件之上的异步的网络库,可以运行在Win/Linux/Unix等各种平台之上. 不过随着C++11的发布,其对Boost的依赖也越来越少,作者又做了一个不依赖 ...

  10. 在 Node.js 中使用 ES6 模块 import 和 export

    1.Node版本 >= 13 2.使用 ES6 模块 a.js export const A = 'A'; index.js import { A } from './a.js'; consol ...