Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d

news2025/1/17 0:22:10

在Win10下编译 OpenCV 4.7.0过程中,踩了几个坑,这里记录下来,供大家参考。

1. 下载源文件

GitHub上下载OpenCV 4.7.0源文件,及opencv_contrib-4.7.0,如果不方便下载,以下是百度网盘链接,有需要可自取

链接:https://pan.baidu.com/s/1qP2aL9712YtuYM1zBeh1bg?pwd=7btf
提取码:7btf 

 建议三个文件均下载,opencv_3rdparty后续有用。

2. 解压opencv-4.7.0.zip,并在opencv-4.7.0新建build文件夹

3. 打开Cmake-gui,设置源文件路径及build路径

选择VS2019及x64选项,点击完成。

 4. Search框中输出“extra”,配置EXTRA_MODULES路径(事先解压opencv_contrib-4.7.0.zip)

5. 点击Configure按钮,静静等待完成。这个过程中会根据CmakeLists.txt进行配置,也会自动从网上下载一些文件。比如说下载xfeatures2d_boostdesc和xfeatures2d_vgg等第三方文件。

这个过程中如果xfeatures2d_boostdesc和xfeatures2d_vgg等文件下载失败,可将我网盘共享的opencv_3rdparty.zip文件解压到build的download文件夹,如下图所示。

如果缺失第三方文件,在后续编译时会出现 无法解析的外部符号 cv::xfeatures2d::VGG::getDefaultName的报错,具体可查考我的帖子编译OpenCV 4.7.0 无法解析的外部符号 cv::xfeatures2d::VGG::getDefaultName 问题解决_NOAHCHAN1987的博客-CSDN博客

 注:第三方文件的下载地址:

GitHub - opencv/opencv_3rdparty at wechat_qrcode_20210119

GitHub - opencv/opencv_3rdparty at contrib_xfeatures2d_vgg_20160317

GitHub - opencv/opencv_3rdparty at contrib_xfeatures2d_boostdesc_20161012

如果想自己从GitHub上下载可以直接从以上地址下载。

6. 配置Configure的时候,要勾选上NONFREE,否者C++ 调用SURF::create会报错 

参考:OpenCV 4.7.0 调用SURF::create 报错问题解决_NOAHCHAN1987的博客-CSDN博客

7. 如果用不上java和python就取消勾选,节约后续编译时间。

同样可以取消各种test的勾选

 8. 根据你自己使用习惯,选择是否生成opencv_world库(如果不勾选,编译时会按模块进行生成库),我个人喜欢用opencv_world库,虽然库臃肿点,胜在方便。

  9. 设置安装路径

 10. 全部设置好后,再次点击Configure按钮。待Configuring done后,点击Generate按钮,生成项目。

11. 点击Open Project或者在build目录下,用VS2019打开OpenCV.sln

 注意选择Release/Debug

 

右键点击“ALL_BUILD”点击“生成” 

经过大约十多分钟,编译完成

右键点击“INSTALL”点击“生成” 

 

 最终,OpenCV头文件和库都会被拷贝到install路径下。

完成,enjoy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven将jar包添加到本地仓库

第一步:下载需要添加的jar包 可以在maven库中查找下载,也可以在对应官网下载 maven库网址:https://mvnrepository.com/ 找到对应版本的jar包下载 第二步:将下载的jar包放到指定位置(位置自己指定)&#xf…

Spring的核心与设计思想

目录 IoC 传统程序开发思想 传统程序开发的缺陷 控制反转式程序开发 对比总结 理解Spring IoC DI 总结 我们通常所说的Spring指的是Spring Framework(Spring 框架),它是一个开源的框架,有着活跃而庞大的社区,Spring支持广泛的应用场景,可以让Java企业级的应用程序开发…

改进蚁狮优化算法

目录 ​1 主要内容 2 部分程序 3 程序结果 4 程序链接 ​1 主要内容 该程序方法复现《改进蚁狮算法的无线传感器网络覆盖优化》两种改进算法模型,即原始ALO算法的基础上添加了两种改进策略: - 改进1:将原先的间断性边界收缩因子变为连…

SpringAop 源码解析 (二) - 代理对象的创建以及执行过程

一、SpringAop 代理创建 以及 执行过程 在上篇文章中分析得出在使用 Aop 时,实际向 Spring 容器中注入了一个 AnnotationAwareAspectJAutoProxyCreator 动态代理 bean 生成处理器,该类有实现 BeanPostProcessor 扩展方法,并且在 postProcess…

文心一言 VS chatgpt (7)-- 算法导论2.3 3~4题

三、使用数学归纳法证明:当n刚好是2的幂时,以下递归式的解是 T(n)nlgn。若n2,T(n)2;若n2^k,k>1,T(n)2T(n/2)n。 文心一言: chatgpt: 首先,当 n2 时,T(n)2log₂n2,显…

结构体全解,适合初学者的一条龙深度讲解(附手绘图详解)

我们知道,C语言是允许我们自己来创造类型的,这些类型就叫做——自定义类型。 自定义类型又包括结构体类型,联合体类型还有枚举类型。 今天的文章,我们就着重讲解这其中的结构体类型。 目录 结构体的声明 1.1结构的基础知识 …

托福高频真词List01//附阅读真题

once in a whileoccasionally adv 偶尔 🍮segregateseparateV.隔离🍮leftover remainingadj.剩余的 rivalcompetitor rivalcompete n.对手 v.对抗 apparentlyseeminglyadv.显然 🍮unrivaledunequaledadj.无与伦比的 🍮&#x…

TCPIP vs OSI模型:网络通信的两种参考模型有哪些不同?

前言 欢迎来到今天的每日一题,每日一提。昨天聊的是面试中经常会问到tcp协议 。在面试中一旦问到TCP/IP,那么OSI模型肯定是躲不过的。如果直接回答OSI模型有7层,和TCP/IP的区别就是层数不一样。那么恭喜你可以提前回去等通知了。所以今天就聊…

23考研重大软院数一英一391分经验帖

今年这情况之后,所有前人的经验帖作废。 前言: 本校本专业生一战上岸,属于考研界难度最低的一档。 今年有个初试439的怪物,属于是蚌了,第二名也有419,第三名就断档了,我初试第五。 政治78&#…

基于html+css的盒子展示1

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

学习MongoDB这一篇就足够了

这篇博客详细的介绍了MongoDB的安装过程,并配置成了自启动服务,非常方便,亲测有效。 MongoDB的安装配置教程(很详细,你想要的都在这里)http://t.csdn.cn/XWV0B IDEA中 JAVA操作MongoDB: 1. 这篇博客主要介…

计算机操作系统第四版第五章虚拟存储器—课后题答案

1.常规存储器管理方式具有哪两大特征?它对系统性能有何影响? 一次性和驻留性。 一次性及驻留性特征使得许多在程序中不用或暂时不用的程序(数据)占据了大量的内存空间,而一些需要运行的作业又无法装入运行,…

CSDN每日一练:鬼画符门之点点大阵

CSDN每日一练:鬼画符门之点点大阵题目描述题目逻辑老顾的提交CSDN题目特色:阅读理解小结题目描述 题目名称:鬼画符门之点点大阵 时间限制:1000ms 内存限制:256M 题目描述 小艺师从鬼画符门派,由于学艺不精只…

如何解决DNS劫持

随着互联网的不断发展,DNS(域名系统)成为了构建网络基础的重要组成部分。而DNS遭到劫持,成为一种常见的安全问题。那么DNS遭到劫持是什么意思呢?如何解决DNS劫持问题呢?下面就让小编来为您一一解答。 DNS遭到劫持是什么意思? DNS遭到劫持指的是黑客通…

SSM学习记录2:传参(注释方式 + SprigMVC项目 + 2022发布版本IDEA)

SpingMVC传参(一般方式 json方式) 一般方式 package controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBod…

OldWang带你了解MySQL(五)

文章目录🔥MySQL中定义空值🔥MySQL中的别名🔥MySQL中去除重复🔥查询中的行选择🔥MySQL中的比较条件🔥其他比较条件🔥逻辑条件🔥优先规则🔥使用 ORDER BY 排序&#x1f52…

JavaScript【八】JavaScript函数高级

文章目录🌟前言🌟回调函数🌟递归函数🌟闭包🌟什么是闭包函数?🌟 闭包三个特性🌟 闭包的缺点🌟JavaScript的垃圾回收机制🌟闭包小案例🌟局部变量长期驻扎内存…

STM32F407串口通信

本文是基于江科大B站视频编写,参考各种资料进行学习。 1、USART串口协议 硬件电路(接线) 2、USART串口外设 常用波特率为9600、115200 必须对应特定引脚,才能实现通信,如果引脚冲突,看看有没有重…

数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)

目录 层序遍历 思路图解 代码实现 二叉树遍历的应用 输出二叉树中的叶节点 代码实现 求二叉树的高度 思路图解 代码实现 二元运算表达式树及其遍历 由两种遍历序列确定二叉树 层序遍历 层序遍历可以通过一个队列来实现,其基本过程为: 先根…

计算机网络P5~P7

目录 1.计算机网路性能指标 2.吞吐量 3.时延 4.时延带宽积 5.往返时间 6.利用率 7.丢包率 8.计算机体系结构 1.计算机网路性能指标 速率和带宽 速率 :每秒传输的比特的个数 单位 b/s kb/s mb/s gb/s 带宽:表示传送数据的能力 。带宽可以理解为高…