OpenCV4.9.0开源计算机视觉库在 Linux 中安装

返回目录:OpenCV系列文章目录(持续更新中......)

上一篇:OpenCV 环境变量参考 

下一篇:将OpenCV与gcc和CMake结合使用

引言:

OpenCV是一个开源的计算机视觉库,由英特尔公司所赞助。它是一个跨平台的库,可运行于Windows、Linux、Mac OS X以及Android系统上,并且支持多种编程语言。OpenCV为用户提供了丰富的计算机视觉算法和函数库,能够用于图像处理、模式识别、机器视觉、智能交通、自动驾驶等多个领域。本篇文章将介绍如何在Linux上安装OpenCV 4.9.0。在这个过程中,我们将会安装和配置OpenCV所需要的依赖库,下载和构建OpenCV 4.9.0的源代码,并将其安装到系统中。安装OpenCV之后,我们还将会配置适当的环境变量,以确保OpenCV正确地工作。本文假设您对Linux有基本的了解,并有一定的计算机编程和系统设定经验。

兼容性:OpenCV >= 3.0

快速入门

1. 安装依赖库:OpenCV依赖许多其他的库,因此需要先安装这些依赖库。在终端中运行以下命令,安装依赖库:  
 

 sudo apt-get updatesudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python3.7-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev   

2. 下载OpenCV4.9.0:从OpenCV的官方网站下载OpenCV4.9.0的源代码,并解压缩到本地目录:

 wget https://github.com/opencv/opencv/archive/4.9.0.zipunzip 4.9.0.zip -d opencv-4.9.0   

3. 构建安装:

   进入解压后的OpenCV4.9.0目录,创建一个新的build目录,并进入该目录: 

  cd opencv-4.9.0mkdir buildcd build

   使用cmake来生成makefile并构建:
 

 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..make -j$(nproc)sudo make install

   4. 配置环境变量:

   在终端窗口中输入以下命令:

  echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig' >> .bashrcsource ~/.bashrc


    这将向您的bash shell中添加OpenCV的库路径和头文件路径。

至此,在 Linux 中安装 OpenCV 4.9.0 完成。需要注意的是,安装过程可能会因系统或计算机配置而异,因此在实际安装时请根据提示进行选择和操作。

编译核心模块
#  安装最低限度的先决条件(Ubuntu 18.04 作为参考)
sudo apt update && sudo apt install -y cmake g++ wget unzip
# 下载和解压源码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
解压缩opencv.zip
# 创建构建目录
mkdir -p build && cd build
# 配置
cmake  ../opencv-4.x
# 构建
cmake --build .
 opencv_contrib方式编译构建 
# 安装最低限度的先决条件(Ubuntu 18.04 作为参考)
sudo apt update && sudo apt install -y cmake g++ wget unzip
# 下载和解压源码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
解压缩opencv.zip
解压缩opencv_contrib.zip
# 创建构建目录并切换到其中
mkdir -p build && cd build
# 配置
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x
# 构建
cmake --build 。

 详细流程

 本部分提供有关生成过程的更多详细信息,并介绍替代方法和工具。有关常规安装详细信息,请参阅 OpenCV 安装概述教程,有关配置选项文档,请参阅 OpenCV 配置选项参考。

安装编译器和生成工具
要编译 OpenCV,您需要一个 C++ 编译器。通常它是 G++/GCC 或 Clang/LLVM:
安装GCC...
sudo apt install -y g++
... 或者 Clang:
sudo apt install -y clang
OpenCV使用的CMake 构建配置工具
sudo apt install -y cmake

CMake 可以为不同的构建系统生成脚本,例如 make、ninja:
安装 Make...
sudo apt install -y make

... 或者Ninja:

sudo apt install -y ninja-build
用于获取和解压缩源代码的安装工具:
wget and 解压缩...
sudo apt install -y wget unzip
... 或者git:
sudo apt install -y git

下载源代码

以下两种方法可以获取 OpenCV 源代码:

1、使用 Web 浏览器或任何下载工具(~80-90Mb)下载存储库快照并解压缩.

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip

解压 opencv.zip

mv opencv-4.x opencv

...或使用 git 将存储库克隆到本地计算机以获取完整的更改历史记录 (>470Mb)

git clone https://github.com/opencv/opencv.git
git -C opencv checkout 4.x

注意
配置过程可以从 Internet 下载一些文件以满足库依赖关系,连接失败可能会导致某些模块或功能被关闭或行为不同。有关详细信息和完整的配置选项参考,请参阅 OpenCV 安装概述和 OpenCV 配置选项参考教程。
如果在生成过程中遇到问题,请尝试清理或重新创建生成目录。配置中的更改(如禁用依赖项、修改构建脚本或将源切换到另一个分支)处理得不好,可能会导致工作区中断。
Make 可以并行运行多个编译进程,-j<NUM线程数)>选项表示“同时运行 <NUM(线程数)> 作业”。-j未选用Ninja 将自动检测可用处理器内核的数量,并且不需要选项。

检查生成结果
成功构建后,您将在目录中找到库,在目录中找到可执行文件(test、samples、apps):build/libbuild/bin

ls bin
ls lib

CMake 包文件将位于构建根目录中:

ls OpenCVConfig*.cmake
ls OpenCVModules.cmake

安装

警告:
安装过程仅将文件复制到预定义的位置,并进行少量修补。使用此方法进行安装不会将 opencv 集成到系统软件包注册表中,因此,例如,opencv 无法自动卸载。我们不建议普通用户进行系统范围的安装,因为可能与系统软件包冲突。
默认情况下,OpenCV 将安装到该目录,所有文件都将复制到以下位置:/usr/local
/usr/local/bin- 可执行文件
/usr/local/lib- 库 (.so)
/usr/local/cmake/opencv4- cmake 软件包
/usr/local/include/opencv4-头
/usr/local/share/opencv4- 其他文件(例如XML格式的训练库)
由于它归 root 用户所有,因此应使用提升的权限()执行安装:/usr/localsudo

sudo make install

或者

sudo ninja install

安装根目录可以通过配置CMAKE_INSTALL_PREFIX参数进行更改,

例如 -DCMAKE_INSTALL_PREFIX=$HOME/.local安装到当前用户的本地目录。

可以使用参数OPENCV_*_INSTALL_PATH更改安装布局。有关详细信息,请参阅 OpenCV 配置选项参考教程

参考文献:

1.Installation in Linux  作者:Ana Huamán

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

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

相关文章

Spark-Scala语言实战(2)(在IDEA中安装Scala,超详细配图)

之前的文章中&#xff0c;我们学习了如何在windows下下载及使用Scala&#xff0c;但那对一个真正想深入学习Scala的人来说&#xff0c;是不够的&#xff0c;今天我会给大家带来如何在IDEA中安装Scala。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的…

python基础——字符串的常见操作方法【下标索引,index,count,len,replace,split,strip】

&#x1f4dd;前言&#xff1a; 字符串是一种有序的&#xff0c;允许重复字符串存在的&#xff0c;不可修改的序列 这篇文章主要总结一下python中有关字符串的部分相关知识&#xff0c;以及字符串的常见操作方法&#xff1a; 1&#xff0c;和其他序列极其类似的操作方法 2&…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

Linux系统——Session ID(负载均衡如何保持会话)

目录 一、实验环境搭建 二、部署Nginx代理服务器配置 三、部署后端真是服务器Tomcat配置 四、配置Tomcat的Session ID会话保持 五、测试 此次实验是Tomcat后端服务器如何做Session ID会话保持 一、实验环境搭建 [rootlocalhost ~]#systemctl stop firewalld [rootlocalho…

Ubuntu Desktop - gnome-calculator (计算器)

Ubuntu Desktop - gnome-calculator [计算器] 1. Ubuntu Software -> gnome-calculator -> Install -> Continue2. Search your computer -> Calculator -> Lock to LauncherReferences 1. Ubuntu Software -> gnome-calculator -> Install -> Continu…

2024年3月退伍大学生士兵报名参加2024年天津专升本的通知

3月20日开始&#xff0c;2024年3月退伍的大学生士兵可报名参加2024年天津市高职升本科招生考试 为落实有关退役大学生士兵免试专升本工作的文件精神&#xff0c;按照《市高招办关于印发2024年天津市高职升本科招生实施办法的通知》&#xff08;津招办高发〔2023〕14号&#xf…

D 咖智能饮品机入驻万达,引领时尚饮品新潮流!

近日&#xff0c;D 咖智能饮品机正式入驻万达广场&#xff0c;为广大消费者带来全新的时尚饮品体验。作为国内领先的智能饮品设备品牌&#xff0c;D 咖智能饮品机以其多样化的口味选择、便捷的操作方式和个性化的定制服务&#xff0c;受到了众多消费者的喜爱。 D 咖智能饮品机提…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:RowSplit)

将子组件横向布局&#xff0c;并在每个子组件之间插入一根纵向的分割线。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 RowSplit通过分割线限制子组件的宽度。初始化…

C语言 1000内完数、素数判断

一、一个数如果恰好等于它的因子之和&#xff0c;这个数就称为“完数”。例如&#xff0c;6旳因子为1&#xff0c;2&#xff0c;3&#xff0c;而6123&#xff0c;因此6是“完数”。编程序找出1000以内的所有“完数”&#xff0c;并按照下面格式输出其因子&#xff1a;6 its fac…

Centos7安装Clickhouse单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

Stargo 管理部署 Starrocks 集群

配置主机间 ssh 互信 ssh-copy-id hadoop02 ssh-copy-id hadoop03配置系统参数 ############################ Swap检查 ############################ echo 0 | sudo tee /proc/sys/vm/swappiness########################### 内核参数检查 ########################## echo…

Swift 面试题及答案整理,最新面试题

Swift 中如何实现单例模式&#xff1f; 在Swift中&#xff0c;单例模式的实现通常采用静态属性和私有初始化方法来确保一个类仅有一个实例。具体做法是&#xff1a;定义一个静态属性来存储这个单例实例&#xff0c;然后将类的初始化方法设为私有&#xff0c;以阻止外部通过构造…