当前位置: 首页 > news >正文

如何在 CentOS 8 上安装 OpenCV?

OpenCV( 开源计算机视觉库)是一个开放源代码计算机视觉库,支持所有主要操作系统。它可以利用多核处理的优势,并具有 GPU 加速功能以实现实时操作。

OpenCV 的用途非常广泛,包括医学图像分析,拼接街景图像,监视视频,检测和识别面部,跟踪运动对象,提取 3D 模型等等。

本文介绍了如何在 CentOS 8 上安装 OpenCV。

准备条件

在 CentOS 上安装 OpenCV 之前,您需要满足一些先决条件:

①、安装CentOS系统的服务器

推荐阿里云、腾讯云或华为云这样的厂商的服务器,比较稳定。

阿里云服务器:传送门
腾讯云服务器:传送门
华为云服务器:传送门

②、服务器的 root 用户身份登录或使用命令来实现sudo。

一、从 CentOS 储存库安装 OpenCV

可从 CentOS 8 标准存储库中获得 OpenCV 软件包,但是没有针对 Python 的实现。

通过键入以下命令安装 OpenCV 软件包:

sudo dnf install opencv opencv-devel opencv-python

安装完成后,请运行以下命令验证 OpenCV 库是否存在:

pkg-config --modversion opencv 
3.4.1

二、从源代码安装 OpenCV

从源代码构建 OpenCV 库可以使您拥有最新的版本。它会针对您的特定系统进行优化,并且您将完全控制构建的选项。

执行以下步骤以从源代码安装最新的 OpenCV 版本:

1、安装必需和可选的依赖项:
sudo dnf install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel \python3 python3-devel python3-pip cmake python3-devel python3-numpy \gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel \libjpeg-turbo-devel libtiff-devel tbb-devel libv4l-devel \eigen3-devel freeglut-devel mesa-libGL mesa-libGL-devel \boost boost-thread boost-devel gstreamer1-plugins-base
2、克隆 OpenCV 和 OpenCV 的代码库:
mkdir -p ~/opencv_build &&  cd ~/opencv_build

在撰写本文时, github 存储库中的默认版本为 4.2.0 。如果要安装旧版本的 OpenCV ,请导航到 opencv 和 opencv_contrib 目录并运行 git checkout <opencv-version>

3、下载完成后,创建一个临时构建目录,然后切换到该目录:
cd ~/opencv_build/opencv &&  mkdir build  &&  cd build 
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

使用以下 CMake 命令配置 OpenCV 构建:

cmake3 -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_build/opencv_contrib/modules \-D BUILD_EXAMPLES=ON ..

输出如下所示:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/opencv_build/opencv/build
4、通过运行以下命令开始编译过程:
make -j8

根据您的处理器内核数修改 -j 标志。如果您不知道处理器的内核数,可以通过键入 nproc 来查看。

编译可能要花费几分钟或更长时间,具体取决于您的系统资源。

5、使用以下方法安装 OpenCV 库:
sudo make install
6、将 链接文件 opencv4.pc 文件指向 /usr/share/pkgconfig 目录的文件并运行 ldconfig 以重建库缓存。
sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig

通过键入以下内容检查 OpenCV 版本:

pkg-config --modversion opencv44.3.0
7、使用如下命令验证 Python cv2 模块是否运行:
python3 -c " import cv2; print(cv2.__version__) "4.3.0-dev

上面是两种在 CentOS 8 服务器上安装 OpenCV 的方法。你可以根据自己的要求和偏好选择合适的方法。

原文来自:如何在 CentOS 8 上安装 OpenCV?

扩展阅读:

【如何在CentOS 7上安装Odoo 12】
【【图文】云服务器如何安装宝塔面板?】
【【教程】如何安装wordpress网站程序?】
【如何将1个项目部署到多台服务器上?】
【如何在线生成自己的短网址,可自定义域名 可统计点击数】

相关文章:

如何在 CentOS 8 上安装 OpenCV?

OpenCV( 开源计算机视觉库)是一个开放源代码计算机视觉库&#xff0c;支持所有主要操作系统。它可以利用多核处理的优势&#xff0c;并具有 GPU 加速功能以实现实时操作。 OpenCV 的用途非常广泛&#xff0c;包括医学图像分析&#xff0c;拼接街景图像&#xff0c;监视视频&am…...

一台主机外接两台显示器

一台主机外接两台显示器 写在最前面双屏配置软件双屏跳转 写在最前面 在使用电脑时需要运行多个程序&#xff0c;时不时就要频繁的切换&#xff0c;很麻烦 但就能用双屏显示来解决这个问题&#xff0c;用一台主机控制&#xff0c;同时外接两台显示器并显示不同画面。 参考&a…...

笔记-搭建和使用docker-registry私有镜像仓库

笔记-搭建和使用docker-registry私有镜像仓库 拉取/安装registry镜像 和 对应的ui镜像 如果有网络可以直接拉取镜像 docker pull registry docker pull hyper/docker-registry-web没有网络可以使用我导出好的离线镜像tar包, 下载地址https://wwzt.lanzoul.com/i3im1194z12d …...

爬虫框架Scrapy学习笔记-2

前言 Scrapy是一个功能强大的Python爬虫框架&#xff0c;它被广泛用于抓取和处理互联网上的数据。本文将介绍Scrapy框架的架构概览、工作流程、安装步骤以及一个示例爬虫的详细说明&#xff0c;旨在帮助初学者了解如何使用Scrapy来构建和运行自己的网络爬虫。 爬虫框架Scrapy学…...

6.1 使用scikit-learn构建模型

6.1 使用scikit-learn构建模型 6.1.1 使用sklearn转换器处理数据6.1.2 将数据集划分为训练集和测试集6.1.3 使用sklearn转换器进行数据预处理与降维1、数据预处理2、PCA降维算法 代码 scikit-learn&#xff08;简称sklearn&#xff09;库整合了多种机器学习算法&#xff0c;可以…...

React 全栈体系(十一)

第五章 React 路由 五、向路由组件传递参数数据 1. 效果 2. 代码 - 传递 params 参数 2.1 Message /* src/pages/Home/Message/index.jsx */ import React, { Component } from "react"; import {Link, Route} from react-router-dom import Detail from ./Detai…...

AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想

TiDB Hackathon 2023 刚刚结束&#xff0c;我仔细地审阅了所有的项目。 在并未强调项目必须使用人工智能&#xff08;AI&#xff09;相关技术的情况下&#xff0c;引人注目的项目几乎一致地都使用了 AI 来构建自己的应用。 大规模语言模型&#xff08;LLM&#xff09;的问世使得…...

Vue的路由使用,Node.js下载安装及环境配置教程 (超级详细)

前言&#xff1a; 今天我们来讲解关于Vue的路由使用&#xff0c;Node.js下载安装及环境配置教程 一&#xff0c;Vue的路由使用 首先我们Vue的路由使用&#xff0c;必须要导入官方的依赖的。 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务https://www.bootcdn.cn/ <…...

vue修改node_modules打补丁步骤和注意事项

当我们使用 npm 上的第三方依赖包&#xff0c;如果发现 bug 时&#xff0c;怎么办呢&#xff1f; 想想我们在使用第三方依赖包时如果遇到了bug&#xff0c;通常解决的方式都是绕过这个问题&#xff0c;使用其他方式解决&#xff0c;较为麻烦。或者给作者提个issue&#xff0c;然…...

CSS 响应式设计:媒体查询

文章目录 媒体查询添加断点为移动端优先设计其他断点方向&#xff1a;横屏/竖屏 媒体查询 CSS中的媒体查询是一种用于根据不同设备的屏幕尺寸和分辨率来定义样式表的方法。在CSS中&#xff0c;我们可以使用媒体查询来根据不同的设备类型和屏幕尺寸来应用不同的样式&#xff0c…...

Qt开发 - Qt基础类型

1.基础类型 因为Qt是一个C 框架, 因此C中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。 QT基本数据类型定义在#include <QtGlobal> 中&#xff0c;QT基本数据类型有&#xff1a; 虽然在Qt中…...

Docker-如何获取docker官网x86、ARM、AMD等不同架构下的镜像资源

文章目录 一、概要二、资源准备三、环境准备1、环境安装2、服务器设置代理3、注册docker账号4、配置docker源 四、查找资源1、服务器设置代理2、配置拉取账号3、查找对应的镜像4、查找不同版本镜像拉取 小结 一、概要 开发过程中经常会使用到一些开源的资源&#xff0c;比如经…...

Vuex状态管理最佳实践

文章目录 单一状态树使用模块使用常量定义Mutation类型使用Actions处理异步操作使用Getters计算属性严格模式分模块管理Getter、Mutation和Action&#xff1a;注释和文档&#xff1a;Vue Devtools ✍创作者&#xff1a;全栈弄潮儿 &#x1f3e1; 个人主页&#xff1a; 全栈弄潮…...

platform和led中断项目

设备树根节点下添加 myledIrqPlatform{compatible"hqyj,myledIrqPlatform";reg<0x22334455 59>;interrupt-parent<&gpiof>;interrupts<9 0>;led1-gpio<&gpioe 10 0>;//10表示使用的gpioe第几个管脚 0&#xff0c;表示gpio默认属性…...

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考&#xff1a; 颜色 什么场景会用到颜色&#xff1f;比如在绘图过程中&#xff0c;为了让图更好看&#xff0c;有的时候&#xff0c;需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中&#xff0c;可以通过颜色下标…...

抖音seo优化排名源码搭建

抖音seo优化排名技术开发源码搭建&#xff1a; 思路&#xff1a;看上去比较简单&#xff0c;貌似使用 get、set 这两个 trap 就可以&#xff0c;但实际上并不是。实际上还需要实现 has, ownKeys , getOwnPropertyDescriptor 这些 trap&#xff0c;这样就能最大限度的限制私有属…...

pytorch的卷积层池化层和非线性变化 和机器学习线性回归

卷积层&#xff1a; 两个输出的情况 就会有两个通道 可以改变通道数的 最简单的神经网络结构&#xff1a; nn.Mudule就是继承父类 super执行的是 先执行父类函数里面的 forward执行的就是前向网络&#xff0c;就是往前推进的&#xff0c;当然也有反向转播&#xff0c;那就是…...

Java手写快速选择算法应用拓展案例

Java手写快速选择算法应用拓展案例 1. 引言 快速选择算法是一种高效的选择算法&#xff0c;可以用于在数组中找到第K小/大的元素。除了基本的应用场景外&#xff0c;快速选择算法还可以应用于其他问题&#xff0c;如查找中位数、查找最大/最小值等。本文将介绍两个拓展应用案…...

js制作柱状图的x轴时间, 分别展示 月/周/日 的数据

背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…...

安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR下级海康设备无法级联是什么原因?

安防视频监控平台/视频集中存储/云存储/磁盘阵列EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&…...

HttpUtils带连接池

准备祖传了&#xff0c;有问题欢迎大家指正。 HttpUtil import com.txlc.cloud.commons.exception.ServiceException; import com.txlc.dwh.common.constants.MyErrorCode; import org.ssssssss.script.annotation.Comment;import java.io.UnsupportedEncodingException; impo…...

智慧养殖:浅谈视频监控与AI智能识别技术助力奶牛高效、智慧养殖

一、方案背景 随着科技的飞速发展&#xff0c;智能化养殖逐渐成为现代畜牧业的发展趋势。人工智能技术、物联网、视频技术、云计算、大数据等新兴技术&#xff0c;正在为奶牛养殖业带来全新的变革。越来越多的牧场、养殖场开始运用新技术来进行智能监管、提高生产效率、降低生…...

一文总结提示工程框架,除了CoT还有ToT、GoT、AoT、SoT、PoT

夕小瑶科技说 原创 编译 | 谢年年 大语言模型LLM被视为一个巨大的知识库&#xff0c;它可以根据你提出问题或陈述的方式来提供答案。就像人类可能会根据问题的不同提供不同的答案一样&#xff0c;LLM也可以根据输入的不同给出不同的答案。因此&#xff0c;你的问题或陈述方式就…...

Java面试笔试acm版输入

首先区分scanner.nextInt()//输入一个整数&#xff0c;只能读取一个数&#xff0c;空格就停止。 scanner.next()//输入字符串&#xff0c;只能读取一个字符串&#xff0c;空格就停止&#xff0c;但是逗号不停止。 scanner.nextLine() 读取一行&#xff0c;换行停止&#xff0c…...

新手怎样快速上手接口测试?掌握这几个知识点直接起飞!

接口测试是测试系统组件间接口的一种方式&#xff0c;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作&#xff0c;以及系统之间的逻辑关系等。 接口的几种类型 接口的类型包括&#xff1a;post &#xff0c;get&…...

IDEA 启动 java web 老项目

背景&#xff1a;一套 java web 老代码&#xff0c;使用 eclipse 工具开发。内网&#xff0c;无 eclipse 开发工具&#xff0c;只有 IDEA。 代码目录结构如下&#xff1a; demo/.settings/* demo/src/com/demo/controller/* demo/webapp/js/* demo/webapp/jsp/* demo/webapp/M…...

软路由和硬路由的区别是什么,性价比与可玩性分析

软路由和硬路由是两种不同类型的路由器设备&#xff0c;它们在基本原理、功能、性能和灵活性等方面存在一些区别&#xff1a; 硬件&#xff1a;软路由是基于一台普通的计算机或服务器&#xff0c;通过软件来实现路由器的功能&#xff1b;而硬路由是专门设计的硬件设备&#xff…...

《TCP/IP网络编程》阅读笔记--多线程服务器端的实现

目录 1--多线程的优点 2--进程和线程的差异 3--线程创建 4--线程使用 5--线程安全问题 6--互斥量 7--信号量 8--线程销毁 9--多线程并发聊天程序 9-1--服务器端 9-2--客户端 9-3--测试结果 1--多线程的优点 多进程服务器的缺点&#xff1a; ① 创建进程的过程会带来…...

修改el-card的header的背景颜色

修改el-card的header的背景颜色 1.修改默认样式 好处是当前页面的所有的el-card都会变化 页面卡片&#xff1a; <el-card class"box-card" ><div slot"header" class"clearfix"><span>卡片名称</span><el-button s…...

ubuntu系统中查看打开的端口

要查看Ubuntu系统中已打开的端口及其相关信息&#xff0c;可以使用以下方法&#xff1a; 打开终端&#xff08;Terminal&#xff09;。 运行以下命令以查看当前系统中的端口使用情况&#xff1a; sudo netstat -tuln这将显示所有已打开的端口及其相关信息&#xff0c;包括监听…...

wordpress滑动相册/域名注册查询网站

背景当前业务存在以下场景&#xff1a;在一个事务内的最后一步是发送kafka消息&#xff0c;消费端收到通知后读取数据并做处理。但是由于kafka几乎是即时收到消息&#xff0c;导致偶尔出现“在发完kafka和提交事务的间隙&#xff0c;消费端收到了消息并读取到了事务提交前的数据…...

网站建设做的好/建设一个网站的具体步骤

刚刚看到一篇关于使用 PreApplicationStartMethod 的文章&#xff0c;地址&#xff1a;http://www.dotnetcurry.com/ShowArticle.aspx?ID570&AspxAutoDetectCookieSupport1 在 Razor 中&#xff0c;如果在页面中要使用 DateTimeFormatInfo&#xff0c;就是一个问题。 Razo…...

静海的做网站/网络营销成功案例分析

【多选题】地层压力的表示方法有( )。A. 用压力的单位表示B. 用压力梯度表示C. 用当量钻井液密度表示D. 用压力系数表示【填空题】(第六章)现在工业上将黄铜和白铜之外的铜合金均称为 。【判断题】亚马逊服饰鞋包钟表首饰类商品信息检查表规定,Brand Name 是必填项,并且要将Bra…...

免费空间分享/百度seo排名查询

转载 https://blog.csdn.net/liangdaojun/article/details/97784967 安装 如果不想安装 Anaconda&#xff0c;可以跳过这一步。因为现在深度学习库更新的比较频繁&#xff0c;对于同一个库&#xff0c;我们有可能使用多个版本&#xff0c;比如tensorflow-gpu1.0.0 , …, tensor…...

日照的网站建设/推广平台网站有哪些

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关&#xff0c;数据结构有以下几种基本的结构算法…...

个人网站做捐赠发布违法吗/如何提交百度收录

RBAC-基于角色的访问控制 在Kubernetes中&#xff0c;最佳的做法是&#xff0c;为特定的应用程序的服务帐户授予角色,确保应用程序在指定的范围内运行。要详细了解服务帐户权限请阅读官方Kubernetes文档. Bitnami写了一个在集群中配置RBAC的指导&#xff0c;可让你了解RBAC基础…...