一、来由

公司需求进行多图拼接算法,在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. 微服务开发手册之GRPC 荐

    GRPC是一个高性能.通用的开源RPC框架,基于HTTP/2协议标准和Protobuf序列化协议开发,支持众多的开发语言. @[TOC] 1 简介 在GRPC框架中,客户端可以像调用本地对象一样直接调 ...

  2. 使用 SpanMetrics Connector 将 OpenTelemetry 跟踪转换为指标

    原文:https://last9.io/blog/convert-opentelemetry-traces-to-metrics-using-spanconnector/ 如果您已经实施了跟踪但缺乏强 ...

  3. Win11如何找回熟悉的开始菜单、任务栏和右键菜单

    背景 公司政策满3年可以换新电脑,前段时间申请了下,到手后发现是Win11系统,配置翻倍,欣然接受,把一些常用的软件都安装上,但是,用了一段时间后,发现右键刷新要点击2次,开始菜单找东西也完全靠搜索, ...

  4. freertos学习笔记(十)事件标志组

    事件标志组 相当于用户平时定义的Flag,事件标志,不过freertos支持将该标志组作为启动task的条件 概述 分为8位和24位的模式(通过设置宏来配置) 每一位有0和1两个状态 用法 用于平常程 ...

  5. HarmonyOS NEXT未成年人模式无缝联动所有应用,过滤非适龄内容

    背景 随着消费电子产品和移动互联网的普及,未成年人互联网普及率96.8%,超过80%的未成年人都拥有自己的上网设备,而如何引导孩子正确上网一直是家长们的担忧.市场上很多电子设备.系统推出了一些未成年人 ...

  6. ERR_INVALID_REDIRECT

    原因为: response.sendRedirect(url) url地址写错了

  7. java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator 问题解决

    目录 报错情况 分析原因 解决方法 本文author:@愷龍 报错情况 在一次使用JSP的jstl时候按照正常引入jstl和使用for each标签出现了如下报错: 分析原因 经过一番调查研究发现原因 ...

  8. hashmap组成原理及调用时机

    整个HashMap中最重要的点有四个:初始化,数据寻址-hash方法,数据存储-put方法,扩容-resize方法,只要理解了这四个点的原理和调用时机,也就理解了整个HashMap的设计. 如果有疑惑 ...

  9. 动态规划——详解leetcode518 零钱兑换 II

    动态规划 零钱兑换 II 参考书目:<程序员代码面试指南:IT名企算法与数据结构题目最优解> 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币 ...

  10. TS中的声明文件

    TS中的声明文件 .d.ts 的作用是为了在TS中使用js文件,但是js文件没有类型,ts又是一个类型严格的语言.所以为了在ts中使用js第三方包,或者自定义Js模块.便由此引出了.d.ts文件. 需 ...