编译opencv4.7.0 + opencv_contrib 记录

news2024/11/30 0:38:32

最近一个项目需要涉及到图像拼接算法,网上了解一番,也大致有思路:

1. 利用surf算法查找特征点

2. 过滤掉一些,获取good点

3. 然后进行配准(图像扭曲),对接

4. 形成最终拼接图片

这些工作,最简单也是最快捷的方式就是opencv

于是就开始研究opencv,windows版本可以直接在官网上下载,也可以在国内一些镜像网站上下载,这里需要注意,如果直接msi版本的话,是不支持surf算法。拼接的时候,需要surf,因此需要自己手动编译一个库出来。

下面就是本人的编译opencv的一些经历

1、准备工作

        经过多次反复试验,准备工作还是需要的,网上很多文章都有描述,但总是有点缺少点什么。

        

CMake需要安装需要这个配置config
gcc也需要安装一个
VS2017或2020之类

也要安装好

并且要重启下,支持windows c++各种组件

安装后,需要重启电脑

需要这个工具编译

   为了避免后续麻烦,安装vs系列,参考如下连接:

解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)_cmd运行cmake..出错_翟天保Steven的博客-CSDN博客

应该倒过来操作比较好,先安装vs系列,然后再安装CMake。

如果,需要增加组件,双击安装包,然后选择 修改 ,这样就可以进行+-组件

2. 下载opencv

        直接在官网也可以,一般速度较慢。建议自带梯子或高级办法(这个还是比较重要,因为后面编译的时候,还要下载一些,没有梯子的话,后面下载肯定会失败,导致最终失败)

        opencv 源到可以通过以下方式下载:

        OpenCV/opencv_contrib国内快速下载 | 绕云技术笔记

        

        需要下载两个:opencv以及contrib,且需要版本一致

3. 编译opencv

        网络上也有比较好的笔记,我也是主要参考笔记(谁叫他写的详细)

        Win10 下编译 OpenCV 4.7.0详细全过程,包含xfeatures2d_NOAHCHAN1987的博客-CSDN博客

        这里步骤一定要认真仔细的执行,否则会很奇怪,不要问我为什么

        

        每个人情况,不太一样:

        config之后,(理论上不能有红色字出现)

 一定要打开 CMakeDownloadLog.txt  看下有没有哪些下载不成功的。

否则,虽然有些错误可以进行下一步,且貌似很顺利编译出最终lib的,但有问题的!!

我就碰到 ippicv 这个模块失败,没引起注意,实际demo的时候,还是发现surf没有装好(百思不得其解)

又从头搞了好几遍!!!好几遍!!!

通用解决办法:

IPPICV: Download failed: 6;“Couldn‘t resolve host name“_free_luojing的博客-CSDN博客

基本思路:由于国内连接无法下载,只能借助 GitHub Proxy 代理加速 进行下载,要一个个下载,速度比较快,麻烦是麻烦点

这里面还碰到一个疑惑:

在编译debug版本的时候,会出现失败

        具体原因vs限制了,暴力解决办法,就是关闭这个限制(这样不能调试opencv库里代码)

选择 opencv_world 点击右键或菜单 - 项目 - 属性

 

 再,点击 右键 - 仅用于项目 - 仅生成 open_world ;先编译这个库,编译成功后,再生成ALL_BUILD  再生成 INSTALL

 这样才能保证debug版本编译成功,否则debug版本是编译失败的

 

4.  最后是验证

        如果以下代码:

Ptr<SURF> Detector = SURF::create(2000);  没有崩溃,说明是安装好了

补充下:

Qt 上:需要添加 外部库,把库添加进来,

并且增加一个include的引用

INCLUDEPATH += xxxx/build/include

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

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

相关文章

NeRF原理简介及实现

“ NeRF&#xff08;Neural Radiance Fields&#xff09;是一种先进的计算机图形学技术&#xff0c;能够使用深度全连接神经网络优化场景的连续5D函数表示&#xff0c;从而生成高度逼真的3D场景。该技术的优势在于没有使用离散化的网格或体素来表示场景&#xff0c;而是使用一个…

【Pandas与SQL系列】Pandas实现分布函数percent_rank、cume_dist

目录 1&#xff0c;分布函数,1.1&#xff0c;percent_rank()1.2&#xff0c;cume_dist()1.3 SQL例子 2&#xff0c;Pandas 实现3&#xff0c;补充Pandas实现排序 1&#xff0c;分布函数, 应用场景&#xff1a;快速查看某个记录所归属的组内的比例 分布函数分类及基础语法&…

asp.net952-sqlserver学生成绩信息管理系统开发

本学生管理系统主要学校内部提供服务&#xff0c;系统分为管理员&#xff0c;教师和学生三部分。 本研究课题重点主要包括了下面几大模块&#xff1a;用户登录&#xff0c;管理员管理,教师信息管理,学生信息管理,课程信息管理,考试信息管理,成绩信息管理系统设置等功能。这几个…

基于深度自编码网络实现轴承故障诊断

1.网络模型(数据集为CWRU) 代码实现了一个基于DAE的分类模型&#xff0c;用于对给定数据集进行分类。首先&#xff0c;通过DAE模型对原始数据进行特征提取和降维&#xff0c;然后使用分类模型将提取的特征与标签相匹配&#xff0c;以便对新数据进行分类。 代码的主要流程: 导…

用激光点云估算建筑高度【PDAL|PostgreSQL】

LiDAR 数据可以非常强大地提取城市规模的地面和物体的高程。 在 One Concern&#xff0c;我们正在使用 LiDAR 数据提取地面和建筑物高程&#xff0c;以改进进入我们的自然灾害模型的暴露信息&#xff0c;最终估计洪水和地震的影响。 由于 3DEP 项目预计将在 2023 年之前收集全…

STM32------GPIO

GPIO 一、介绍 1、1 什么是GPIO&#xff1f; 输入输出端口 1、2 GPIO特点 1、不同封装IO数量不一样。 2、快速翻转&#xff0c;每次翻转最快只需要两个时钟周期。 3、每个IO都可以做中断。 4、支持8种工作模式。 1、3 GPIO电气特性 STM32工作电压范围&#xff1a;2~3…

【C进阶】通讯录的实现(静态+动态)

目录 前言: 一.静态通讯录的实现 1.关于通讯录的前期准备 (1)菜单的打印 (2)建立一个联系人的信息 (3)通讯录整体 (4)宏定义常量 (5)主函数菜单选项的功能 2.通讯录的功能实现 (1)初始化通讯录 (2)增加指定联系人 (3) 展示通讯录 "FindByName函数" (4)删…

Autosar 规范接口之SPI

Autosar SPI 概述&#xff08;Specification of SPI Handler/Driver &#xff09; 基础知识介绍 在AutoSar标准中&#xff0c;与SPI通讯相关的三个术语&#xff1a;Channel、Job和Sequence。 1个Channel对应1个发送缓冲区和1接收缓冲区&#xff1b;1个Job对应着1次SPI通讯发送…

(第45册)HTML5网页游戏设计从基础到开发(第2版·微课视频版)

HTML5是W3C组织近年来发布的一项引起业内轰动的Web新标准。它几乎颠覆现有Web应用, HTML5从根本上改变了开发商开发web应用的方式,从桌面浏览器到移动应用,这种语言和标准都正在影响将继续影响着各种操作平台。 本书是第2版&#xff0c;第1版2018年出版&#xff0c;经历6次印刷…

【项目开发】GoFrame+Vue项目部署到阿里云服务器

前言 本来想都用docker部署的&#xff0c;结果学艺实在是不精&#xff0c;只能先这么委曲求全宝塔页面的反向代理一直无法生效&#xff0c;用了重定向跳转页面宝塔的网站也可以构建go项目 背景 后端使用GoFrame框架&#xff0c;前端使用Vue 3 TypeScript Vite&#xff0c;…

Windows Cygwin 配置

Windows Cygwin 配置 一、什么是Cygwin&#xff1f; Cygwin&#xff0c;原Cygnus出品&#xff08;已被红帽收购&#xff09;&#xff0c;目前是RedHat名下的项目。项目的目的是提供运行于 Windows 平台的类 Unix 环境&#xff08;以 GNU 工具为代表&#xff09;。为了达到这个…

learn C++ NO.4 ——类和对象(2)

1.类的6个默认成员函数 1.1.默认成员函数的概念 在 C 中&#xff0c;如果没有显式定义类的构造函数、析构函数、拷贝构造函数和赋值运算符重载函数&#xff0c;编译器会自动生成这些函数&#xff0c;这些函数被称为默认成员函数。 class Date { };初步了解了默认成员函数&am…

pytorch实战10:基于pytorch简单实现CGAN

基于pytorch简单实现CGAN 前言 ​ 最近在看经典的卷积网络架构&#xff0c;打算自己尝试复现一下&#xff0c;在此系列文章中&#xff0c;会参考很多文章&#xff0c;有些已经忘记了出处&#xff0c;所以就不贴链接了&#xff0c;希望大家理解。 ​ 完整的代码在最后。 本系列…

离散数学下 ---格与布尔代数

&#xff08;一&#xff09;目录 格的定义及性质 子格 分配格 有补格 布尔代数 &#xff08;二&#xff09; 内容 格的定义与性质 补充点&#xff1a; 格与布尔代数&#xff0c;它们与群的基本不同之处是&#xff1a;格与布尔代数的基集都是一个偏序集。 格是一个具…

华硕主板win11设置关机状态下USB接口不通电

华硕主板win11设置关机状态下USB接口不通电 我新装机子在关机之后usb还是通电&#xff0c;导致一些外接设备显示灯常亮着非常不方便。因此我尝试把其关掉。 我的是华硕主板&#xff0c;不同主板可能设置方式不一样&#xff0c;请注意。 请按照如下步骤操作&#xff1a; 计算机…

NetApp FAS2554故障灯常亮case处理过程分享

近期处理了一个NetApp FAS2554前面故障灯一直点亮的case&#xff0c;本文对于分析过程和最终的问题发现做一个分享&#xff0c;欢迎讨论&#xff0c;可以add wechat at StorageExpert。 外观检查&#xff1a; 客户反馈&#xff0c;一套FAS2554存储&#xff0c;没有任何扩展柜…

文献阅读(52)—— Integration self-attention and convolution

文献阅读&#xff08;52&#xff09;—— Integration self-attention and convolution 文章目录 文献阅读&#xff08;52&#xff09;—— Integration self-attention and convolution先验知识/知识拓展文章结构背景文章方法1. Relating Self-Attention with Convolution 文章…

C++11 函数对象、Lambda表达式 绑定器

1. 函数对象和绑定器 函数对象&#xff1a; 重载了operator()运算符的类的对象。 STL中的原本的绑定器&#xff1a; STL中的绑定器可将二元函数对象绑定为一元函数对象。有如下示例帮助回顾&#xff1a; #include <iostream> #include <vector> #include <…

「 计算机网络 」Cookie、Session、Token、JWT 原理详解

「 计算机网络 」Cookie、Session、Token、JWT 原理详解 参考&鸣谢 傻傻分不清之 Cookie、Session、Token、JWT 详解 Cookie&#xff0c;Session&#xff0c;Token 一文彻底搞懂Cookie、Session、Token到底是什么 文章目录 「 计算机网络 」Cookie、Session、Token、JWT 原…

机器学习 day13(正则化,线性回归的正则化)

正则化的思想 如果特征的参数值更小&#xff0c;那么对模型有影响的特征就越少&#xff0c;模型就越简单&#xff0c;因此就不太容易过拟合 如上图所示&#xff0c;成本函数中有W₃和W₄&#xff0c;且他们的系数很大&#xff0c;要想让该成本函数达到最小值&#xff0c;就得使…