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.rhkb.cn/news/277590.html

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

相关文章

基于springboot医疗服务系统源码和论文397

随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 医疗服务系统&#xff0c;主要的模块包括查看管理员&#xff1b;首页、个人中心、普通村民管理、乡村医生管理、公告信息管理、乡村诊室管理、健康档…

Pytorch学习 day14(模型的验证步骤)

如何利用已经训练好的模型&#xff0c;验证它的结果&#xff0c;步骤如下&#xff1a; 步骤一&#xff1a;加载测试输入并更改为合适尺寸 保存图片到指定文件夹下&#xff0c;注意是否为同级目录注意&#xff1a;返回上一级目录为“…/xxx"有时&#xff0c;我们自己的输…

【GIS系列】GeoTools简介及工具类分享

本文将对GeoTools相关概念进行介绍&#xff0c;同时会给大家分享我工作中用到的工具类及使用方法。 作者&#xff1a;后端小肥肠 目录 1.前言 2. GeoTools简介 3. Geotools使用示例 3.1. 开发环境搭建 3.1.1. 所需版本和工具 3.1.2. pom依赖 3.1.3. 示例代码 4. 工具类…

利用“定时执行专家”软件的25种任务与12种触发器,提升IT系统管理自动化水平

在IT系统管理中&#xff0c;自动化是提高工作效率、减少人为错误的关键。而《定时执行专家》这款软件&#xff0c;以其强大的功能、易用性和毫秒级的执行精度&#xff0c;成为了IT系统管理员的得力助手。今天&#xff0c;我们就来探讨一下如何利用这款软件的25种任务类型和12种…

centos命令history设置记录10000行

今天在操作服务器的时候&#xff0c;用history查看操作记录的时候&#xff0c;发现只能查看10条&#xff0c;这样不行啊&#xff0c;我想查看所有人对服务器操作的命令。 [rootbogon ~]# history解决办法&#xff1a; #1、找到/etc/profile文件中的histsize 把10改成10000 […

jeecg 启动 微服务 更改配置本地host地址

127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-sentinel 127.0.0.1 jeecg-boot-xxljob 127.0.0.1 jeecg-boot-rabbitmq1. windows系统下&#xff0c;在开…

基于springboot+vue实现艺术水平考级报名系统【项目源码+论文说明】计算机毕业设计

基于springbootvue实现艺术水平考级报名系统演示 摘要 本次毕业设计基于SpringBoot框架开发了一款艺术水平考级报名管理系统。该系统为考生提供了线上报名、准考证管理等核心功能&#xff0c;并为系统管理员提供了在线发布考试信息、对报名考生进行审核等管理功能。通过该系统…

基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计

基于JavaSpringMVCvueelement实现前后端分离校园失物招领系统详细设计 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收…

Java学习笔记------常用API(五)

爬虫 从网站中获取 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.reg…

AI:149-法律电子邮件图像中的欺诈检测与敲诈勒索追踪—深度学习技术

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

一款博客网站源码

一款博客网站源码 源码软件库 为大家内置了主题 清爽又强大真正的永久可用的一条源码&#xff0c;该版本为整合版本&#xff0c;内置了Joe主题&#xff0c;搭建后直接启用即可~ 安装环境要求&#xff1a; PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持&#xff…

基于单片机的智能小车泊车系统设计

摘 要:随着信息技术的进步,汽车逐渐朝着安全、智能方向发展,智能泊车系统的出现不仅能帮助人们更加快速、安全地完成泊车操作,而且适用于狭小空间的泊车操作,降低驾驶员泊车负担,减轻泊车交通事故发生率。文章基于单片机设计自动泊车系统,以单片机为核心来实现信息收集及…

Ubuntu 虚拟机安装

最小化安装后常用工具 sudo apt-get install vim# ifconfig apt install net-tools # nload apt install nload # 很多都要用到 apt install build-essential # 开发相关 apt install gcc gapt install iproute2 ntpdate tcpdump telnet traceroute \ nfs-kernel-server nfs…

LeetCode 2684.矩阵中移动的最大次数:一列一列处理,只记能到哪行(BFS)

【LetMeFly】2684.矩阵中移动的最大次数&#xff1a;一列一列处理&#xff0c;只记能到哪行(BFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-number-of-moves-in-a-grid/ 给你一个下标从 0 开始、大小为 m x n 的矩阵 grid &#xff0c;矩阵由若干 正 整…

《如何使用C语言去下三子棋?》

目录 一、环境配置 二、功能模块 1.打印菜单 2.初始化并打印棋盘 3、行棋 3.1玩家行棋 3.2电脑行棋 4、判断是否和棋 5.判赢 三、代码实现 1、test.c文件 2、game.c文件 3、game.h文件 一、环境配置 本游戏用到三个文件&#xff0c;分别是两个源文件test.c game.c 和…

【网络原理】TCP 协议中比较重要的一些特性(三)

目录 1、拥塞控制 2、延时应答 3、捎带应答 4、面向字节流 5、异常情况处理 5.1、其中一方出现了进程崩溃 5.2、其中一方出现关机&#xff08;正常流程的关机&#xff09; 5.3、其中一方出现断电&#xff08;直接拔电源&#xff0c;也是关机&#xff0c;更突然的关机&am…

计算机网络 |内网穿透

其实内网穿透&#xff0c;也挺好玩的&#xff0c;如果在大学的时候&#xff0c;那个时候讲计算机网络的老师能横向延展&#xff0c;估计课也会更有趣不少&#xff0c;本来计算机网络这门课就是计算机课程中可玩性最搞的。 只能说&#xff0c;怪可惜的 回到正题&#xff0c;内网…

SQL-Labs靶场“32-33”关通关教程

君衍. 一、32关 GET单引号闭合宽字节注入1、源码分析2、宽字节注入原理3、联合查询注入4、updatexml报错注入5、floor报错注入 二、33关 GET单引号addslashes逃逸注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 SQL-Labs靶场通关教程&#xff1a; SQL注入…

GaN HEMTs在电力电子应用中的交叉耦合与基板电容分析与建模

来源&#xff1a;Analysis and Modeling of Cross-Coupling and Substrate Capacitances in GaN HEMTs for Power-Electronic Applications&#xff08; TED 17年&#xff09; 摘要 本文提出了一种考虑了基板电容与场板之间交叉耦合效应的场板AlGaN/GaN高电子迁移率晶体管(HE…

zookeeper快速入门二:zookeeper基本概念

本文是zookeeper系列之快速入门中的第二篇&#xff0c;欢迎大家观看与指出不足。 目录 一、zookeeper的存储结构 二、什么是znode 三、znode节点的四种类型 四、权限控制ACL&#xff08;Access Control List&#xff09; 五、事件监听watcher 一、zookeeper的存储结构 z…