记录一下OpenCV Contrib 编译踩的坑

最近有需要采用OpenCV Contrib 里面的函数做一下处理,要重新编译,一路编译两三个小时了,记录一下备忘吧。
1、编译前先准备好如下环境
①visual studio已安装,具体版本和型号根据需求经验来,我看常用的是VS2015、VS2017、VS2019.
②Cmake 版本不要太低
③OpenCV 源代码
https://github.com/opencv/opencv
一定要准备源代码,我先偷懒,把之前下载的免编译版本拿过来直接用,不知道哪里没有兼容好,一直报错,我真的是谢了。。。

还有,到底下载哪个版本的OpenCV,首先看需求经验,要先搜一搜与安装VS版本稳定兼容的版本。比如,我的是VS2022了,我搜到兼容稳定性比较好的是OpenCV-4.7.0,我就下载这个了。

④OpenCV Contrib 源码
https://github.com/opencv/opencv_contrib
一定要与OpenCV 的版本相匹配,如果OpenCV是4.7.0,么OpenCV Contrib的版本也得是4.7.0。
在这里插入图片描述在这里插入图片描述

2、编译
1)当把源码下载到本地以后,先解压到一个路径(不要包含中文),一般不建议放C盘,除非只有一个盘。
在这里插入图片描述
2)打开Cmake 进行编译
如下绿框是要先设置好,按键 configure启动
在这里插入图片描述
注意:点击config 以后,就开始搭建房子框架了,输出窗口非常重要,随着支持文件的下载环境监测等流程进行,输出窗口会反馈结果,爆红。。。
此处新手是需要学习的,逐句检查,参考这个来吧,写的很详细
OpenCV_contrib配置教程(详细版)
但是这里想记一点不一样的
(1)首先为了运行速度快,test的我都没选种
在这里插入图片描述
(2)网速很重要,如果github 链接快,才没那么多错误
我在编译过程中发现了很多因为网速或者没翻墙等原因,就是下载不了文件,我都是到处有额外下载的。

(3)当configure 一直报错,那就好好检查输出窗口,把需要的文件下载下来,然后把它重命名成缓冲区对应的文件名,业内把这叫搭梯子。

(4)所有梯子文件制作完毕以后,最好是吧生成路径(Cmake的目标路径)下的文件全都删除,并清理一下cmake的缓存,然后从头开始,此处还要配好选项和选择。这一步需要足够快速的网络,还要足够细心,反复来几遍也不是不可能。Cmake的输出窗口其实非常明确,要细读。不懂警告和错误的,就复制下来浏览器搜索答案,或者问问AI,千万不要忽略不计,除非你真的用不到,不然怎么编译也得不到想要的结果。

CMakeDownloadLog.txt 文件记录了下载,当哪一个文件下载失败不仅输出窗口有 failed 提示,这边也有对应的记录,里面有健全的链接,复制到网络好的地方都可以下载。

(5)最后一点,我configure 和generate成功以后,open project,我的生成编译方式参考的是
opencv_contrib编译
我更喜欢这种简洁明了的方式。

感谢网络互联,知识共享!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一刷——1.20——准备蓝桥杯

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目一 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次&a…

整数的分离与合成

整数的分离与合成 一、整数的分离1.1 整数拆成数字的方法1.1.1 取尾法1.1.2 取头法 1.2 任意整数的分离 二、整数的合成 整数是由数字和数位组成的,比如327是一个三位数,它的数字是3、2、7,数位是个数、十位、百位。 经常有些题目考查将一个整数拆分成各…

动态规划(多状态)

面试题 17.16. 按摩师 面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int massage(vector<int>& nums) {int n nums.size();//特殊情况&#xff1a;空数组if(n0)return 0;vector<int> f(n);vector<int> g(n);…

【json_object】mysql中json_object函数过长,显示不全

问题&#xff1a;json只显示部分 解决&#xff1a; SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB&#xff0c;根据需要调整如果当前在navicat上修改&#xff0c;只有效本次连接和后续会话&#xff0c;重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…

ElasticSearch DSL查询之高亮显示

什么是高亮显示&#xff1f; 高亮显示是指在搜索结果中&#xff0c;将用户搜索的关键字突出显示&#xff0c;使其更为醒目。以百度搜索为例&#xff0c;当用户搜索“JAVA”时&#xff0c;搜索结果中的标题或概述部分会将“JAVA”高亮显示&#xff0c;通常以红色标出&#xff0…

WGAN - 瓦萨斯坦生成对抗网络

1. 背景与问题 生成对抗网络&#xff08;Generative Adversarial Networks, GANs&#xff09;是由Ian Goodfellow等人于2014年提出的一种深度学习模型。它包括两个主要部分&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;…

低代码系统-产品架构案例介绍(五)

接上篇&#xff0c;某搭介绍。 某搭以低代码为核心驱动&#xff0c;利用AI能力强势推动应用深度体验&#xff0c;打通钉钉对接&#xff0c;且集成外部系统。 可以看出&#xff0c;某搭在未来的规划上&#xff0c;着重在于AI 也就说明&#xff0c;低代码产品在未来的竞争上&…

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础 目录 1.NAND FLASH 和NOR FLASH异同 ? 2.CPU,MPU,MCU,SOC,SOPC联系与差别? 3.什么是交叉编译&#xff1f; 4.为什么要交叉编译&#xff1f; 5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别? 1…

学习记录之原型,原型链

构造函数创建对象 Person和普通函数没有区别&#xff0c;之所以是构造函数在于它是通过new关键字调用的&#xff0c;p就是通过构造函数Person创建的实列对象 function Person(age, name) {this.age age;this.name name;}let p new Person(18, 张三);prototype prototype n…

迈向 “全能管家” 之路:机器人距离终极蜕变还需几步?

【图片来源于网络&#xff0c;侵删】 这是2024年初Figure公司展示的人形机器人Figure 01&#xff0c;他可以通过观看人类的示范视频&#xff0c;在10小时内经过训练学会煮咖啡&#xff0c;并且这个过程是完全自主没有人为干涉的&#xff01; 【图片来源于网络&#xff0c;侵删】…

海康工业相机的应用部署不是简简单单!?

作者&#xff1a;SkyXZ CSDN&#xff1a;SkyXZ&#xff5e;-CSDN博客 博客园&#xff1a;SkyXZ - 博客园 笔者使用的设备及环境&#xff1a;WSL2-Ubuntu22.04MV-CS016-10UC 不会吧&#xff1f;不会吧&#xff1f;不会还有人拿到海康工业相机还是一脸懵叭&#xff1f;不会还有人…

【自动控制原理】非线性系统 描述函数法 相平面法

写在前面&#xff08;叠甲&#xff09;&#xff1a; 非线性是控制科学中重要的一个研究方向&#xff0c;它所包含的理论远远超过自动控制原理中的内容。在本文中&#xff0c;所介绍的内容仍然在《自动控制原理》框架内&#xff0c;所以只介绍了自控原理课程中涉及的非线性问题&…

three.js实现裸眼双目平行立体视觉

three.js实现裸眼双目平行立体视觉原理&#xff1a; 利用两个相机、两个渲染器&#xff0c;同时渲染同一个场景。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"…

N个utils(sql)

sql&#xff0c;操作数据库的语言&#xff0c;也可以叫做数据库软件的指令集吧。名字而已&#xff0c;无所谓啦。 本质上&#xff0c;sql并不是java语言内的范畴。但却是企业级开发的范畴。并且我整个文章的一篇逻辑的本质&#xff0c;层的概念&#xff0c;其中一个大的层级就…

工业网口相机:如何通过调整网口参数设置,优化图像传输和网络性能,达到最大帧率

项目场景 工业相机是常用与工业视觉领域的常用专业视觉核心部件&#xff0c;拥有多种属性&#xff0c;是机器视觉系统中的核心部件&#xff0c;具有不可替代的重要功能。 工业相机已经被广泛应用于工业生产线在线检测、智能交通,机器视觉,科研,军事科学,航天航空等众多领域 …

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

pytest+playwright落地实战大纲

前言 很久没有更新博客&#xff0c;是因为在梳理制作Playwright测试框架实战相关的课程内容。现在课程已经完结&#xff0c;开个帖子介绍下这门课程&#xff08;硬广, o(〃&#xff3e;▽&#xff3e;〃)o&#xff09; 课程放在CSDN学习频道&#xff0c; 欢迎关注~ PyTestPl…

鸿蒙系统 将工程HarmonyOS变成OpenHarmony

DevEco Studio软件创建工程后需要修改两个地方&#xff1a; 修改第二个build-profile.json5文件 将原先内容&#xff1a; {"app": {"signingConfigs": [],"products": [{"name": "default","signingConfig": &q…

Matlab总提示内存不够用,明明小于电脑内存

目录 前言情况1&#xff08;改matlab最大内存限制&#xff09;情况2&#xff08;重启电脑&#xff09;情况3 前言 在使用matlab中&#xff0c;有时候需要占用的内存并没有超过电脑内存依旧会报错&#xff0c;提示内存不够用&#xff0c;可以尝试下面几种方法&#xff0c;总有一…

[操作系统] 进程的调度

进程切换概念 时间⽚&#xff1a;当代计算机都是分时操作系统&#xff0c;没有进程都有它合适的时间⽚(其实就是⼀个计数 器)。时间⽚到达&#xff0c;进程就被操作系统从CPU中剥离下来。 死循环是如何运行&#xff1f; 当一个进程代码为死循环&#xff0c;它并不会一直占据C…