ubuntu/debian中安装OpenCV并且配置OpenCV开发环境

编译OpenCV

本文想编译第三方的模块,尤其时aruco模块以及sfm(structure from motion)模块,所以需要同时编译contrib代码。

由于sfm模块依赖其他一些库,这些库如果不提前安装,最后sfm不会编译
需要安装下面一些,sfm文档中说也需要按照ceres库,但是好像不安装也没有关系。

sudo apt-get install libeigen3-dev libgflags-dev libgoogle-glog-dev

先下载OpenCV的源码,本文用的基础源码版本4.10.0, 扩展源码contrib源码版本4.10.0。注意版本要一致。

linux环境最好下载一个【科学上网工具】,因为编译代码时会下载一些东西,如果下载失败有可能编译不成功。

我比较喜欢使用cmake-gui工具,比较直观。先选择OpenCV 4.10.0的文件夹作为源码文件夹,然后新建一个build文件,作为生成文件夹。先第一次点击configure。

然后在变量配置中,OPENCV_EXTRA_MODULES_PATH,将OpenCV_Contrib_4.10.0里面的modules(注意是modules文件夹)选择。

为了能快速编译完成,可以对
BUILD_TESTS
BUILD_PERF_TESTS 取消勾选
BUILD_opencv_python_tests

勾选
OPENCV_ENABLE_NONFREE 编译生成那些并不免费的库(比如以前的SIFT,现在过了产权期了)

选择
CMAKE_INSTALL_PREFIX选择你要安装的路径,建议不要安装在系统文件夹,这样可以让多个OpenCV版本可以共存。

再次点击configure。
点击generate.

再刚刚新建的build文件夹中用
make -j8 (-j后面接一个数字,表示用多少个线程进行编译。通过命令nproc查询系统有多少个线程)
编译成功后
make install (如果是系统路径,需要sudo make install)

配置OpenCV

再Linux中,我使用cmake来配置OpenCV,因为上面我将OpenCV安装到了个人的路径下,cmake肯定找不到,因此需要配置OpenCV的一个路径OpenCV_DIR

-DOpenCV_DIR=“opencv安装路径/lib/cmake/opencv4”
opencv安装路径也就是上面CMAKE_INSTALL_PREFIX指定的

然后
在CMakeLists.txt中首先要查找OpenCV
写作:
find_package(OpenCV CONFIG REQUIRED PATHS ${OpenCV_DIR}) (一般不需要 写后面的PATHS ${OpenCV_DIR}, 我这样写是防止系统中还有一些其他的OpenCV版本)

然后再链接就行(不需要设置include路径,比如将OpenCV_INCLUDE_DIRS添加到头文件路径中)
target_link_libraries(target_name PRIVATE fmt::fmt ${OpenCV_LIBS})

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

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

相关文章

python中的__hash__魔法函数详解

在Python中,__hash__ 是一个特殊方法(也称为魔法方法或双下划线方法),它用于定义对象的哈希值。哈希值是一个整数,通常用于在哈希表(如字典和集合)中快速查找对象。 当你试图将一个对象作为键添…

Spring Boot中的多模块项目构建

Spring Boot中的多模块项目构建 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 随着应用程序的复杂性增加,将一个大型的应用程序拆分为多个模块或…

HarmonyOS4升级到Harmonyos Next(Api 11)学习捷径

HarmonyOS4升级到Harmonyos Next(Api 11)学习捷径,新技术学习路上少走弯路。HarmonyOS NEXT和HarmonyOS 4的基本语法都是一样的,但是还有一些区别。如果你学会HarmonyOS4,那么HarmonyOS Next也自然而然的会了。 Harmon…

RabbitMQ实践——搭建单人聊天服务

大纲 创建Core交换器用户登录发起聊天邀请接受邀请聊天实验过程总结代码工程 经过之前的若干节的学习,我们基本掌握了Rabbitmq各个组件和功能。本文我们将使用之前的知识搭建一个简单的单人聊天服务。 基本结构如下。为了避免Server有太多连线导致杂乱,下…

哈喽GPT-4o,对GPT-4o 数据分析Data Analysis的思考与看法

目录 上传一个Excel给Data Analysis。Prompt:请问这个数据集是做什么的Prompt:请问书籍的定价如何,请用合适的图表展示它的售价情况Prompt:请统计书名列中出现最多的名称,然后使用词云将其可视化。Prompt:请…

笔记 - shell脚本

前言 Shell脚本是一种用来执行命令行命令的脚本文件。它是由一系列Shell命令组成的程序,通常用于自动化任务、系统管理、数据处理等。Shell脚本可以运行在各种Unix和Linux系统上,也可以在Windows上的一些兼容环境(如Cygwin、WSL)中…

js闭包函数

闭包是指在一个函数内部定义的函数,并且该函数可以访问到外部函数的变量。闭包可以将外部函数的变量保持在内存中,并且不会被释放。 闭包具有以下特性: 1. 函数内部定义的函数可以访问外部函数的变量。 2. 外部函数的变量可以保持在内存中&am…

[大师C语言(第三十九篇)]C语言const关键字深度解析与实战技巧

第一部分:C语言const关键字深度解析 一、const关键字的作用 在C语言中,const关键字是一个用于声明常量的修饰符。它用于指定一个变量的值在程序执行过程中不能被改变。使用const关键字可以确保代码的稳定性,防止不必要的变化,并…

58.鸿蒙系统app(HarmonyOS)(ArkUI)更改应用程序图标

替换xx\MyApplication4.30\entry\src\main\resources\base\media目录下icon.png文件 54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接收发测试_鸿蒙socket连接测试-CSDN博客

『Django』模型入门教程-操作MySQL

theme: smartblue 点赞 关注 收藏 学会了 本文简介 一个后台如果没有数据库可以说废了一半。日常开发中大多数时候都在与数据库打交道。Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。每个模型类通常对…

C++之STL(十二)

1、容器适配器 #include <iostream> #include <stack> #include <list> #include <queue> #include <functional> #include <iterator>using namespace std;int main() {// 栈&#xff08;先进后出filo&#xff09;stack<int, list<…

基于PHP的长城景区信息管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的长城景区信息管理系统 一 介绍 此长城景区信息管理系统基于原生PHP开发&#xff0c;数据库mysql。系统角色分为用户和管理员。 技术栈&#xff1a;phpmysqlphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 浏览长城景区信息(旅…

Unity解决报错:Execution failed for task ‘:unityLibrary:BuildIl2CppTask‘

目录 编辑器版本2020.3.33f1 及 2021.3.15f1 直接导出apk或aar报错(虽然会自动生成temp的AS工程&#xff0c;经过打开验证 也是无解的)&#xff1b; 唯一解决办法&#xff1a;Unity导出As工程没问题&#xff1b; 编辑器版本2020.3.33f1 及 2021.3.15f1 直接导出apk或aar报…

Pytorch-----(6)

一 、问题 如何计算基于不同变量的操作如矩阵乘法。 二、具体实现 0.4版本以前&#xff0c;张量是包裹在变量之中的&#xff0c;后者有三个属性grad、volatile和 requires_grad属性。&#xff08;grad 就是梯度属性&#xff0c;requires_grad属性就是 是否需要存储梯度&#x…

[电子电路学]电路分析基本概念1

第一章 电路分析的基本概念和基本定律 电路模型 反映实际电路部件的主要电磁性质的理想电路元件及其组合&#xff0c;是实际电路电气特性的抽象和近似。 理想电路元件 实际电路器件品种繁多&#xff0c;其电磁特性多元而复杂&#xff0c;分析和计算时非常困难。而理想电路元件…

一款开源、免费、现代化风格的WPF UI控件库

前言 今天大姚给大家分享一款开源&#xff08;MIT License&#xff09;、免费、现代化风格的WPF UI控件库&#xff1a;ModernWpf。 项目介绍 ModernWpf是一个开源项目&#xff0c;它为 WPF 提供了一组现代化的控件和主题&#xff0c;使开发人员能够创建具有现代外观的桌面应…

【pytorch09】数学运算

1.数学操作 add/minus/multiply/dividematmulpowsqrt/rsqrtround 2.加减乘除 加法 矩阵乘法 torch.mm 只适用于2d torch.matmul 要分清楚是矩阵元素相乘&#xff0c;还是矩阵相乘 例子 x一共有4张照片&#xff0c;每张照片打平成784的向量&#xff0c;希望降维得到[4,51…

戴尔笔记本重装系统?笔记本卡顿失灵?一键重装系统!

随着科技的快速发展&#xff0c;笔记本电脑已成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;随着时间的推移&#xff0c;笔记本可能会遇到各种问题&#xff0c;如系统卡顿、失灵等。这时&#xff0c;重装系统往往是一个有效的解决方案。本文将详细介绍如何在戴尔笔…

ONLYOFFICE 8.1编辑器桌面应用程序来袭——在线全面测评

目录 ✈下载✈ &#x1f440;界面&#x1f440; &#x1f44a;功能&#x1f44a; &#x1f9e0;幻灯片版式的重大改进&#x1f9e0; ✂无缝切换文档编辑、审阅和查看模式✂ &#x1f3b5;在演示文稿中播放视频和音频文件&#x1f3b5; &#x1f917;版本 8.1&#xff1a…

一键生成AI动画视频?Animatediff 和 ComfyUI 更配哦!

大家好我是极客菌&#xff01; 之前我分享过 Animatediff 在 WebUI 中的应用&#xff0c;最近不是在分享 ComfyUI 嘛&#xff0c;那我们也来讲讲 Animatediff 在 ComfyUI 的应用。 如果从工作流和内存利用率的角度来说&#xff0c;Animatediff 和 ComfyUI 可能更配一些&#…