【运维】Ubuntu,如何在Ubuntu系统中编译和安装OpenCV, apt安装OpenCV

文章目录

  • 编译安装
  • apt安装OpenCV

在C++开发中,使用OpenCV是一个常见的需求。您可以选择使用conan构建包,或者直接将OpenCV安装到系统中。官方文档提供了详细的教程,可以在这里找到:OpenCV官方文档

编译安装

然而,在这里我们将演示一种自己的安装方法,逐步进行操作:

步骤1:更新系统
在安装任何软件之前,请确保您的系统是最新的。打开终端并执行以下命令:

sudo apt update
sudo apt upgrade

步骤2:安装依赖项
安装构建OpenCV所需的基本依赖项:

sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
sudo apt-get install git

步骤3:安装图像和视频I/O库
安装用于处理图像和视频的库:

sudo apt install libjpeg-dev libpng-dev libtiff-dev libwebp-dev libopenexr-dev -y

步骤4:安装优化和数学库
安装用于优化和数学计算的库:

sudo apt install libatlas-base-dev gfortran

步骤5:克隆OpenCV存储库
使用Git克隆OpenCV存储库:

git clone https://github.com/opencv/opencv.git --depth=3

步骤6:克隆OpenCV贡献模块存储库
克隆OpenCV的额外模块,这将为您提供更多功能:

git clone https://github.com/opencv/opencv_contrib.git --depth=3

步骤7:创建并进入构建目录
进入OpenCV目录并创建一个用于构建的新目录:

cd opencv
mkdir build
cd build

步骤8:配置OpenCV

运行cmake配置OpenCV。确保指定了正确的路径,并根据需要启用/禁用选项:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..

这是使用CMake配置OpenCV编译和安装过程中的一条命令。

  • -D CMAKE_BUILD_TYPE=RELEASE: 指定构建类型为RELEASE,这意味着编译的是优化后的 release 版本而不是调试版本。

  • -D CMAKE_INSTALL_PREFIX=/usr/local: 指定安装目录为 /usr/local。这是安装OpenCV的根目录,安装后的文件将被放置在该目录下。

  • -D INSTALL_C_EXAMPLES=ON: 允许安装C语言示例代码。

  • -D INSTALL_PYTHON_EXAMPLES=ON: 允许安装Python语言示例代码。

  • -D OPENCV_GENERATE_PKGCONFIG=ON: 生成用于包管理的配置文件。这在一些系统上是必要的,以便其他软件能够正确地找到和链接OpenCV。

  • -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules: 指定OpenCV额外模块的路径,这样在编译时将包含这些额外的功能模块。

最后的 .. 表示CMake应该在当前目录中查找 CMakeLists.txt 文件,并使用它来生成构建系统所需的文件。这是一种常见的CMake命令,用于配置和生成项目的构建系统。

步骤9:构建和安装
运行make进行构建。这可能需要一些时间:

make -j$(nproc)
sudo make install

步骤10:配置动态链接库
配置动态链接库:

sudo ldconfig

现在,您已成功安装OpenCV。您可以编写并运行OpenCV程序,以确保安装是否成功。请注意,这是一个基本的安装过程,您可以根据需求和系统配置进行调整。

apt安装OpenCV

您可以使用apt包管理工具直接安装OpenCV。在Ubuntu或其他基于Debian的系统上,可以执行以下命令安装OpenCV:

sudo apt-get update
sudo apt-get install libopencv-dev

上述命令会安装OpenCV的开发包,其中包含用于编译和链接OpenCV程序所需的头文件和库文件。

如果您需要安装OpenCV的额外模块(例如opencv_contrib提供的模块),您可以使用以下命令:

sudo apt-get install libopencv-dev libopencv-contrib-dev

这将安装OpenCV的开发包和额外模块的开发包。

请注意,通过apt安装的OpenCV版本可能不是最新的。如果您需要最新版本,您可能需要使用其他方法,如从源代码编译。

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

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

相关文章

小土堆pytorch学习笔记002

1、TensorBoard的使用 (1)显示坐标: from torch.utils.tensorboard import SummaryWriter import numpy as np from PIL import Imagewriter SummaryWriter("logs") # 写入的位置 log_dir logs # writer.add_image() "…

【LeetCode: 148. 排序链表 + 链表 + 归并排序】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

今天来看看工商业储能收益模式有哪些

安科瑞武陈燕acrelcy 2023 年有望成为工商业储能的发展元年,主要原因2023年工商业储能的经济性有望大幅提升。工商业储能下游主要为工商业企业,投资是否具有经济性是工商业需求的核心因素之一,而2023年工商业储能经济性或将显著提升&#xf…

shared_ptr 与 unique_ptr 的转换 笔记

推荐B站文章: 6.shared_ptr与unique_ptr_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p6&vd_sourcea934d7fc6f47698a29dac90a922ba5a3我的往期文章: 独占指针:unique_ptr 与 函数调用-CSDN博客https://blog.csdn.n…

【Docker】构建镜像

一般来说我们不需要自己构建镜像,这些镜像在docker hub上面已经有现成的了,比如常用的数据库、应用软件等。 某些情况我们还是需要自己来构建: 找不到现成的镜像,比如自己开发的应用程序 需要在镜像中加入特定的功能/软件 Docker提供了两种…

C++入门学习(十五)运算符

算术运算符&#xff1a;用于处理四则运算赋值运算符&#xff1a;用于将表达式的值赋给变量比较运算符&#xff1a;用于表达式的比较&#xff0c;并返回一个真值或假值逻辑运算符&#xff1a;用于根据表达式的值返回真值或假值 一、加减乘除 #include <iostream> #incl…

vue和react的运行机制

Vue和React都是现代的前端框架&#xff0c;它们提供了丰富的特性和工具&#xff0c;帮助开发者构建复杂的用户界面。虽然它们有很多相似之处&#xff0c;但也有一些重要的区别&#xff0c;特别是在运行机制方面。 Vue的运行机制 Vue.js是一个渐进式JavaScript框架&#xff0c…

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上&#xff0c;根据实际安装经验&#xff0c;稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…

ijkj4a作用

ijkj4a是一个用于在Android平台上与Java和JNI进行交互的库。它提供了一些方便的函数和宏&#xff0c;用于在JNI层面上访问Java类和方法。通过使用ijkj4a&#xff0c;开发人员可以更轻松地在JNI代码中调用Java方法&#xff0c;以及在Java代码中调用JNI函数。 ijkj4a的作用主要有…

A股市场风云!深圳开股票账户交易佣金费用最低是多少?

最近A股市场表现出色&#xff0c;呈现出风云状态&#xff01;投资者纷纷涌入股市&#xff0c;推动股指不断攀升。一方面&#xff0c;政府出台了一系列政策来稳定市场&#xff0c;如加强监管力度、推动资本市场改革等&#xff0c;为投资者提供了更多机会和便利条件。另一方面&am…

“情暖寒冬 温暖相伴”关爱慰问

岁末寒冬&#xff0c;春节将至&#xff0c;为持续巩固脱贫攻坚成果&#xff0c;扎实助力乡村振兴&#xff0c;市融媒体中心开展“情暖寒冬 温暖相伴”慰问活动。 1月25市融媒体中心联合我市志愿者协会在南村镇忽树庄村开展“情暖寒冬 温暖相伴”慰问活动&#xff0c;为脱贫户送…

Spark3学习笔记

文章目录 一、Spark 基础1、Spark概述1.1 Spark简介1.2 Spark VS Hadoop1.3 Spark特点1.4 Spark入门Demo 2、Spark 运行模式2.1 概述2.2 Local模式2.3 Standalone 模式2.4 配置高可用&#xff08; Standalone HA&#xff09;2.5 Yarn 模式2.6 K8S & Mesos 模式2.7 Windows …

Vue基础知识

Vue Vue基础知识 v-bind:动态绑定属性值 Vue 修改&#xff0c;标签内也修改 在methods 中可以定义很多函数 在 data 中可以定义很多变量 v-if / v-show&#xff1a;对符合条件的元素进行展示 v-for:把数据遍历出现在网页中 案例 <!DOCTYPE html><html lang"e…

postman自动化测试如何设置环境变量教程

在接口测试中&#xff0c;我们经常会用到一些通用请求参数&#xff0c;或者需要使用某个接口的返回参数作为另一个接口的请求参数&#xff0c;静态的参数还好&#xff0c;如果是经常变动的参数&#xff0c;那么操作起来&#xff0c;就特别的麻烦&#xff0c;这时候&#xff0c;…

C语言用户态函数可观测性

本文不是介绍eBPF相关的用户态Probe的内容&#xff0c;而是如何利用开源C语言库Melon的函数模板来轻松实现函数的可观测性需求&#xff0c;例如&#xff1a;测量耗时等。 本文主要介绍的是Melon库中的func模块&#xff0c;之所以没有给这个模块起名叫可观测性或者span&#xf…

springboot(ssm成都旅游网 旅游管理系统 旅游规划系统Java系统

springboot(ssm成都旅游网 旅游管理系统 旅游规划系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.…

如何利用监管工具有效防止员工私单飞单?

在今天的商业社会中&#xff0c;企业必须保持高度的监管和控制力度&#xff0c;以确保员工遵守公司的规章制度和道德准则。尤其在微信成为了日常工作中不可或缺的沟通工具的情况下&#xff0c;如何有效防止员工进行私单飞单成为了每个企业亟需解决的问题。 而微信管理系统通过…

【CCF】JCR3区,SCIEI双检,征稿领域广,来稿不拒!

一、期刊简介 3区计算机类SCI&EI 【期刊概况】IF&#xff1a;2.0-3.0&#xff0c;JCR3区&#xff0c;中科院4区&#xff1b; 【终审周期】走期刊部系统&#xff0c;3个月左右录用&#xff1b; 【检索情况】SCI&EI双检&#xff1b; 【WOS收录年份】2001年&#xff…

应急响应-Windows-进程排查

进程&#xff08;process&#xff09;是计算机中的程序关于某数据集合上的一次运动活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结果的基础。在早期面向进程结构中&#xff0c;进程是线程的容器。无论是在Windows系统还是Linux系统中&#xff0c…

专业远程控制软件有哪些品牌

远程办公、远程控制类的软件很多&#xff0c;主打方向和面向的客户人群也不一样。个人用户可能更在意便捷、免费等因素&#xff1b;专业用户会更注重安全性、管理功能等。今天我们介绍几个在全球知名的专业商业远程软件。 1、TeamViewer 简介&#xff1a;TeamViewer &#xf…