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

news2024/12/23 0:51:03

返回目录: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 update
 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 sudo 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.zip
 unzip 4.9.0.zip -d opencv-4.9.0   

3. 构建安装:

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

  cd opencv-4.9.0
  mkdir build
  cd 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' >> .bashrc
  source ~/.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.coloradmin.cn/o/1522328.html

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

相关文章

KBP210-ASEMI新能源专用整流桥KBP210

编辑&#xff1a;ll KBP210-ASEMI新能源专用整流桥KBP210 型号&#xff1a;KBP210 品牌&#xff1a;ASEMI 封装&#xff1a;KBP-4 正向电流&#xff08;Id&#xff09;&#xff1a;2A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff1a;6…

SpingBoot集成Rabbitmq及Docker部署

文章目录 介绍RabbitMQ的特点Rabbitmq术语消息发布接收流程 Docker部署管理界面说明Overview: 这个页面显示了RabbitMQ服务器的一般信息&#xff0c;例如集群节点的名字、状态、运行时间等。Connections: 在这里&#xff0c;可以查看、管理和关闭当前所有的TCP连接。Channels: …

#QT(定时轮播电子相册)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a; &#xff08;1&#xff09;使用QOBJECT的TIMER &#xff08;2&#xff09;EVENT时间 &#xff08;3&#xff09;多定时器定时溢出判断 &#xff08;4&#xff09;QLABEL填充图片 3.记录 4.代码 widget.h #ifndef WIDGET_H…

数星星 刷题笔记 (树状数组)

依题意 要求每个点 x, y 的左下方有多少个星星 又因为 是按照y从小到大 给出的 所以 我们在计算个数的时候是按照y一层层变大来遍历的 因此我们在处理每一个点的时候 只需要看一下 当前的点有多少个点的x值比当前点小即可 树状数组的 操作模板 P3374 【模板】树…

R语言实现中介分析(1)

中介分析&#xff0c;也称为介导分析&#xff0c;是统计学中的一种方法&#xff0c;它用于评估一个或多个中介变量&#xff08;也称为中间变量&#xff09;在自变量和因变量之间关系中所起的作用。换句话说&#xff0c;中介分析用于探索自变量如何通过中介变量影响因变量的机制…

Python-GIS分析之地理数据空间聚类

地理空间数据聚类是空间分析和地理信息系统(GIS)领域的一项关键技术。这种方法对于理解地理数据固有的空间模式和结构、促进城市规划、环境管理、交通和公共卫生等各个领域的决策过程至关重要。本文探讨了地理空间数据聚类的概念、方法、应用、挑战和未来方向。 当模式出现…

《计算机视觉中的深度学习》之目标检测算法原理

参考&#xff1a;《计算机视觉中的深度学习》 概述 目标检测的挑战&#xff1a; 减少目标定位的准确度减少背景干扰提高目标定位的准确度 目标检测系统常用评价指标&#xff1a;检测速度和精度 提高精度&#xff1a;有效排除背景&#xff0c;光照和噪声的影响 提高检测速度…

wsl ubuntu 安装cuda nvcc环境

wsl ubuntu 安装cuda环境&#xff1a; CUDA Toolkit 11.6 Downloads | NVIDIA DeveloperDownload CUDA Toolkit 11.6 for Linux and Windows operating systems.https://developer.nvidia.com/cuda-11-6-0-download-archive?target_osLinux&target_archx86_64&Distri…

介绍一款鼠标无边界软件

"Mouse without Borders" 是一款由微软开发的免费工具&#xff0c;旨在帮助用户在多台计算机之间实现无缝的鼠标和键盘共享。通过 Mouse without Borders&#xff0c;用户可以在一个主控制台上控制多台计算机&#xff0c;就像操作一个大型虚拟桌面一样。 这个工具可…

MySQL安装(Mac系统)

首先要删除本机原有的mysql 停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop不放心可以使用以下命令查询并杀死进程 ps aux | grep mysqld sudo kill <PID>再次尝试停止服务 sudo /usr/local/mysql/support-files/mysql.server stop卸载MySQL&…

C#对ListBox控件中的数据进行的操作

目录 1.添加数据&#xff1a; 2.删除数据&#xff1a; 3.清空数据&#xff1a; 4.选择项&#xff1a; 5.排序&#xff1a; 6.获取选中的项&#xff1a; 7.获取ListBox中的所有项&#xff1a; 8.综合示例 C#中对ListBox控件中的数据进行的操作主要包括添加、删除、清空、…

(一)、机器人时间同步方案分析

1、是否有必要进行时间同步 目前的自动驾驶系统包括 感知、定位、决策规划、控制 等模块&#xff0c;这些模块的正常运行需要依靠各种不同类型的传感器数据的准确 融合。尤其是激光雷达与相机这两种传感器在感、知定位模块中起着至关重要的作用。机械式旋转扫描激光雷达本身较低…

基于FPGA的光纤通信系统的实现的优化技巧与方法

逻辑电路基本框架回顾 跨时钟域同步技术 读写操作相互独立时钟域 A 和 B 不需要一致的相位由专门逻辑控制读写操作的切换 高速数据的乒乓缓存技术

【计算机网络】https的工作原理以及和http的区别

目录 前言 1. HTTP协议存在的问题 2. 什么是HTTPS协议&#xff1f; 3. HTTP和HTTPS有哪些区别&#xff1f; 4. HTTPS的工作原理 加密方式 前言 在日常的Web项目练习中&#xff0c;我们会发现老师会让我们在打开服务器之后使用 http://localhost/...进行项目效果测试和预览…

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

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

游戏引擎中的动画基础

一、动画技术简介 视觉残留理论 - 影像在我们的视网膜上残留1/24s。 游戏中动画面临的挑战&#xff1a; 交互&#xff1a;游戏中的玩家动画需要和场景中的物体进行交互。实时&#xff1a;最慢需要在1/30秒内算完所有的场景渲染和动画数据。&#xff08;可以用动画压缩解决&am…

R语言深度学习-5-深度前馈神经网络

本教程参考《RDeepLearningEssential》 本篇我们将学习如何建立并训练深度预测模型。我们将关注深度前馈神经网络 5.1 深度前馈神经网络 我们还是使用之前提到的H2O包&#xff0c;详细可以见之前的博客&#xff1a;R语言深度学习-1-深度学习入门&#xff08;H2O包安装报错解决…

Spring炼气之路(炼气一层)

目录 一、IOC 1.1 控制反转是什么&#xff1f; 1.2 什么是IOC容器&#xff1f; 1.3 IOC容器的作用 1.4 IOC容器存放的是什么&#xff1f; 二、DI 2.1 依赖注入是什么&#xff1f; 2.2 依赖注入的作用 三、IOC案例实现 3.1下载Maven 3.2 配置Maven中的settings.xml文…

Stable Diffusion科普文章【附升级gpt4.0秘笈】

随着人工智能技术的飞速发展&#xff0c;我们越来越多地看到计算机生成的艺术作品出现在我们的生活中。其中&#xff0c;Stable Diffusion作为一种创新的图像生成技术&#xff0c;正在引领一场艺术创作的革命。本文将为您科普Stable Diffusion的相关知识&#xff0c;带您走进这…

部署一个本地的ChatGPT(Ollama)

一 下载Ollama Ollama下载地址&#xff1a;https://ollama.com/download 下载完后 二 安装运行 双击下载好的OllamaSetup.exe开发 安装Ollama: 安装完成后&#xff0c;多了一个Ollama的菜单如下图 &#xff1a; Ollama安装好默认是配置开机运行&#xff0c;如果没有运行可以在…