如何在 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( 开源计算机视觉库)是一个开放源代码计算机视觉库,支持所有主要操作系统。它可以利用多核处理的优势,并具有 GPU 加速功能以实现实时操作。 OpenCV 的用途非常广泛,包括医学图像分析,拼接街景图像,监视视频&am…...
一台主机外接两台显示器
一台主机外接两台显示器 写在最前面双屏配置软件双屏跳转 写在最前面 在使用电脑时需要运行多个程序,时不时就要频繁的切换,很麻烦 但就能用双屏显示来解决这个问题,用一台主机控制,同时外接两台显示器并显示不同画面。 参考&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爬虫框架,它被广泛用于抓取和处理互联网上的数据。本文将介绍Scrapy框架的架构概览、工作流程、安装步骤以及一个示例爬虫的详细说明,旨在帮助初学者了解如何使用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(简称sklearn)库整合了多种机器学习算法,可以…...
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 刚刚结束,我仔细地审阅了所有的项目。 在并未强调项目必须使用人工智能(AI)相关技术的情况下,引人注目的项目几乎一致地都使用了 AI 来构建自己的应用。 大规模语言模型(LLM)的问世使得…...
Vue的路由使用,Node.js下载安装及环境配置教程 (超级详细)
前言: 今天我们来讲解关于Vue的路由使用,Node.js下载安装及环境配置教程 一,Vue的路由使用 首先我们Vue的路由使用,必须要导入官方的依赖的。 BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务https://www.bootcdn.cn/ <…...
vue修改node_modules打补丁步骤和注意事项
当我们使用 npm 上的第三方依赖包,如果发现 bug 时,怎么办呢? 想想我们在使用第三方依赖包时如果遇到了bug,通常解决的方式都是绕过这个问题,使用其他方式解决,较为麻烦。或者给作者提个issue,然…...
CSS 响应式设计:媒体查询
文章目录 媒体查询添加断点为移动端优先设计其他断点方向:横屏/竖屏 媒体查询 CSS中的媒体查询是一种用于根据不同设备的屏幕尺寸和分辨率来定义样式表的方法。在CSS中,我们可以使用媒体查询来根据不同的设备类型和屏幕尺寸来应用不同的样式,…...
Qt开发 - Qt基础类型
1.基础类型 因为Qt是一个C 框架, 因此C中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。 QT基本数据类型定义在#include <QtGlobal> 中,QT基本数据类型有: 虽然在Qt中…...
Docker-如何获取docker官网x86、ARM、AMD等不同架构下的镜像资源
文章目录 一、概要二、资源准备三、环境准备1、环境安装2、服务器设置代理3、注册docker账号4、配置docker源 四、查找资源1、服务器设置代理2、配置拉取账号3、查找对应的镜像4、查找不同版本镜像拉取 小结 一、概要 开发过程中经常会使用到一些开源的资源,比如经…...
Vuex状态管理最佳实践
文章目录 单一状态树使用模块使用常量定义Mutation类型使用Actions处理异步操作使用Getters计算属性严格模式分模块管理Getter、Mutation和Action:注释和文档:Vue Devtools ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮…...
platform和led中断项目
设备树根节点下添加 myledIrqPlatform{compatible"hqyj,myledIrqPlatform";reg<0x22334455 59>;interrupt-parent<&gpiof>;interrupts<9 0>;led1-gpio<&gpioe 10 0>;//10表示使用的gpioe第几个管脚 0,表示gpio默认属性…...
R语言-关于颜色
目录 颜色 示例 R 颜色板 参考: 颜色 什么场景会用到颜色?比如在绘图过程中,为了让图更好看,有的时候,需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中,可以通过颜色下标…...
抖音seo优化排名源码搭建
抖音seo优化排名技术开发源码搭建: 思路:看上去比较简单,貌似使用 get、set 这两个 trap 就可以,但实际上并不是。实际上还需要实现 has, ownKeys , getOwnPropertyDescriptor 这些 trap,这样就能最大限度的限制私有属…...
pytorch的卷积层池化层和非线性变化 和机器学习线性回归
卷积层: 两个输出的情况 就会有两个通道 可以改变通道数的 最简单的神经网络结构: nn.Mudule就是继承父类 super执行的是 先执行父类函数里面的 forward执行的就是前向网络,就是往前推进的,当然也有反向转播,那就是…...
Java手写快速选择算法应用拓展案例
Java手写快速选择算法应用拓展案例 1. 引言 快速选择算法是一种高效的选择算法,可以用于在数组中找到第K小/大的元素。除了基本的应用场景外,快速选择算法还可以应用于其他问题,如查找中位数、查找最大/最小值等。本文将介绍两个拓展应用案…...
js制作柱状图的x轴时间, 分别展示 月/周/日 的数据
背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…...
安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR下级海康设备无法级联是什么原因?
安防视频监控平台/视频集中存储/云存储/磁盘阵列EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&…...
SpringCloud微服务里,用Zuul网关聚合Swagger文档的完整配置流程(含踩坑记录)
SpringCloud微服务架构下Zuul网关聚合Swagger文档的实战指南 在微服务架构中,API文档的管理一直是个令人头疼的问题。想象一下,当你的系统由十几个甚至几十个微服务组成时,开发人员要记住每个服务的接口地址和文档路径几乎是不可能的任务。更…...
从零构建开源任务管理中枢:TaskWing部署、插件化与自动化实战
1. 项目概述:从零到一,打造你的个人任务管理中枢如果你和我一样,每天被各种待办事项、项目进度、临时想法和会议记录搞得焦头烂额,那么你肯定不止一次地想过:有没有一个工具,能真正“懂”我,能把…...
GPU内核优化技术:R3框架原理与实践
1. GPU内核优化基础与挑战在HPC和科学计算领域,GPU内核优化是提升计算效率的核心技术。内核(Kernel)作为GPU上执行的基本计算单元,其性能直接影响整个应用的运行时间。典型的优化手段包括循环展开、内存访问优化、指令级并行等&am…...
AI驱动的网络安全:深度学习与LLM在威胁检测与教育中的应用
1. 项目概述:AI赋能的网络安全新范式在网络安全领域,我们正面临着一个日益严峻的悖论:一方面,攻击手段正变得前所未有的复杂和自动化;另一方面,74%的安全事件仍然源于人为因素。这种技术与人的双重挑战催生…...
终极指南:如何使用qmcdump轻松解密QQ音乐加密音频文件
终极指南:如何使用qmcdump轻松解密QQ音乐加密音频文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否…...
STM32F103C8T6驱动5V LCD1602,开漏输出+上拉电阻的硬件连接与代码避坑指南
STM32F103C8T6驱动5V LCD1602的硬件设计与代码实战指南 当3.3V的STM32遇到5V供电的LCD1602模块时,电平不匹配问题常常让初学者头疼不已。本文将深入解析开漏输出配合上拉电阻的解决方案,通过硬件原理分析、示波器实测对比和完整代码示例,带你…...
3步解锁网易云音乐NCM文件:ncmdump让你的音乐自由播放
3步解锁网易云音乐NCM文件:ncmdump让你的音乐自由播放 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的加密NCM文件无法在其他设备播放而烦恼吗?ncmdump作为一款专业的网易云音乐NCM文件…...
突破音频平台限制:基于Go+Qt5的喜马拉雅下载器技术解析
突破音频平台限制:基于GoQt5的喜马拉雅下载器技术解析 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 在数字化学习与娱…...
CANN/asc-devkit单核形状API文档
SetSingleShape 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode…...
从仿真到调试:FSDB与VPD波形文件的生成与高效查看指南
1. 数字IC验证中的波形文件:为什么它们如此重要? 在数字IC验证的世界里,波形文件就像是工程师的"显微镜"。想象一下,你正在调试一个复杂的RTL设计,代码运行了,但结果不对。这时候,如果…...
