Ubuntu22.04系统安装opencv步骤简述及问题解决方法

前言

opencv是一个功能强大、开源且跨平台的计算机视觉库,适用于多种编程语言和操作系统,能够帮助开发者构建各种视觉项目。其模块众多,提供了诸多功能,能够进行图像处理、视频处理等等。比如:Highgui模块提供图像用户界面和视频I/O功能;Video模块专门用于视频分析;Photo模块提供了计算摄影功能。

opencv能够在Linux系统中使用,于是我在电脑中利用虚拟机来实现安装和使用。接下来,我将简述安装步骤和所遇问题及其解决方法。

准备工作

在开始安装之前,需要在电脑中安装相关的系统,如果就是Linux系统的,那么直接开始安装即可。接下来就是Windows系统安装虚拟机及其相关系统的步骤:

https://blog.csdn.net/youbestcando/article/details/136088857?spm=1001.2014.3001.5502

安装步骤

更新系统软件包

打开终端输入下面的指令

1.sudo apt update
2.sudo apt upgrade

注意:第二个指令可能需要较长的时间,请耐心等待;提示你是否继续,输入y回车即可。

呈现的结果:

图一

图二

安装依赖项

输入以下代码

sudo apt install libdc1394-devsudo apt install build-essential cmake git pkg-config libgtk-3-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran libatlas-base-dev python3-dev python3-numpy \
libtbb2 libtbb-dev libdc1394-dev

注意:第二个指令安装也需要一段时间,等待即可。

呈现的结果:

图一

图二

下载OpenCV源代码

输入以下代码

cd ~git clone https://gitee.com/mirrors/OpenCV.git

先返回主目录,然后下载原代码即可。

呈现的结果:

构建新目录

输入以下代码

cd opencvmkdir buildcd build

呈现的结果:

配置编译

配置编译选项是一个重要的步骤,这直接影响了程序构建的过程和最终的输出的质量。此步骤通常包括编译器和链接器选项,这些选项可以控制编译器和链接器怎么样源代码和库文件,生成最终的可执行文件或者库文件。

输入以下代码

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..

解释:-D CMAKE_BUILD_TYPE=RELEASE

构建类型RELEASE,这时编译器进行优化,生成性能更高的代码。

-D CMAKE_INSTALL_PREFIX=/usr/local

指定了OpenCV安装的根目录。

-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON

这就是指定要安装python和c++。

呈现的结果:

图一

图二

只要出现图二中的内容,就说明配置编译过程已完成,可以进行下一步骤。

编译和安装

输入以下指令

make -j$(nproc)sudo make install

注意:第一句是编译指令,编译需要较长的时间,有可能需要半小时以上。影响此速度的可能是因为虚拟机的技术和内存、I/O性能与物理机有些不足。要想加快此速度,可以尝试分配更多的CPU核心和内存。

呈现的结果:

图一

出现了错误。这个错误是因为找不到opencv2/gapi.hpp这个头文件,是Cmake没有正确配置导致,于是我再次进行了一次Cmake,输入以下指令即可。

make cleancd /path/to/OpenCV/samples/cpp/tutorial_code/gapi
cmake -DOpenCV_DIR=/path/to/OpenCV/build -DOpenCV_GAPI_BUILD=ON ..
make

解释:首先清理之前的编译内容。

cd /path/to/OpenCV/samples/cpp/tutorial_code/gapi

此指令的意思是编译工作的前期工作,系统将当前的工作目录切换至指令中的gapi子目录,确保在正确的目录下执行接下来的操作。

cmake -DOpenCV_DIR=/path/to/OpenCV/build -DOpenCV_GAPI_BUILD=ON ..

cmake是编译工具,可生成makefile文件,用于编译。

-DOpenCV_DIR=/path/to/OpenCV/build这个指定了OpenCV库的构建路径。

-DOpenCV_GAPI_BUILD=ON确保G-API被构建。

呈现的结果:

图二

达到百分之百,就可以编译了。输入make -j$(nproc)。

图三

最后输入sudo make install完成安装。

图四

配置环境变量

输入以下指令

sudo nano /home/li/.bashrcsource ~/.bashrc

配置好环境变量能够让我们在终端直接使用OpenCV指令。

注意:在文件的末尾添加以下代码

export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

呈现的结果:

完成之后,按下ctrl+x,然后输入y,最后回车即可。

验证安装

输入以下指令

pkg-config --modversion opencv4

结果出现了报错:

此问题是系统无法找到OpenCV 4的pkg-config文件,于是我在配置编译的步骤中指令加入了以下内容:-D OPENCV_GENERATE_PKGCONFIG=YES \

然后将配置编译的指令输入回车,接着进行编译和安装,最终进行验证即可。呈现的结果:

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

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

相关文章

Python 解析 JSON 数据

1、有如下 JSON 数据,存放在 data.json 文件: [{"id":1, "name": "小王", "gender": "male", "score": 96.8}, {"id":2, "name": "小婷", "gender&qu…

Python 课程12-Python 自动化应用

前言 Python 自动化应用 可以帮助开发者节省时间和精力,将重复性、手动操作变为自动化脚本。例如,Python 可以用于自动化处理文件、邮件、生成报表,甚至可以控制浏览器执行复杂的网页操作任务。借助 Python 的强大库和工具,可以轻…

python学习——对无人机影像有RGB转换到HSV

问题描述 最近需要对无人机影像中绿色植被信息进行提取,查看相关论文,发现用的比较多的就是HSV色彩转换方法,动手实践一下。 解决思路 #mermaid-svg-5ejGodIusPv6zFVS {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

浪潮信息首推3秒智能控温!告别服务器开机噪音

在当前的数据中心运维实践中,运维人员在部署服务器时常被“飞机起飞”般的开机噪音所困扰。服务器刚刚接通电源,其内部元件尚处于预热待命状态,而风扇却已全速运转,这不仅加剧了噪音污染,还拖慢了启动速度,…

了解华为云容器引擎(Cloud Container Engine)

1.什么是云容器引擎? 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级Kubernetes集群。借助云容器引擎,您可以在华为云上轻松部署、管理和扩展容器化应用程序。云容器引擎是一个企业级的…

【Python机器学习】循环神经网络(RNN)——超参数

几乎所有模型都可以根据数据和样本进行调整,它们都有各自的优势和相应的利弊权衡方式。寻找最优超参数集通常是一个棘手的问题,但是人类的直觉和经验可以为我们提供解决问题的方法。比如之前的例子: #设置任意输入序列的最大长度 maxlen100 …

鸿蒙 ArkUI组件二

ArkUI组件(续) 文本组件 在HarmonyOS中,Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容,而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

多模态大语言模型综述(中)-算法实用指南

本文是Multimodal Large Language Models: A Survey的译文之算法实用指南部分。 上:摘要、概念与技术要点实用指南中:算法实用指南(本文)下: 任务的实用指南(应用)、挑战等 原始信息 标题: Multimodal Large Language Models: A Survey译文: 多模态大…

拓扑排序算法

拓扑排序算法 上图意思为在我想要完成C7这件事之前我必须先完成事件C1,在完成C5这件事之前我必须先完成事件C6和C3.由图可以提看出拓扑序列是不唯一的。 有向图拓扑排序算法基本步骤: 1.从图中选择一一个入入度为0的顶点, 输出该顶点; 2.从图中删除该…

MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例

目录 深入理解 JavaScript 中的 MutationObserver:原理与实战案例 一、MutationObserver 简介 二、MutationObserver 的工作原理 1、基本用法 2、observe 方法的配置项 三、实战案例 案例 1:监控动态内容加载 案例 2:监控属性变化 案…

springboot 项目获取 yaml/yml (或 properties)配置文件信息

文章目录 springboot 项目获取配置文件信息前言1、 Autowired 注入 Environment类2、基础用法,使用Value注解直接注入配置信息3、进阶方法(推荐使用)拓展:springboot 集成配置中心 - 以 Apollo 为例 springboot 项目获取配置文件信…

通信工程学习:什么是接入网(AN)中的TF传送功能

接入网(AN)中的TF传送功能 在通信工程中,TF(Transfer Function)传送功能是指为接入网(AN)不同位置之间提供通道和传输介质,以实现数据的有效传输。以下是关于TF传送功能的详细解释&a…

PMP--一模--解题--91-100

文章目录 13.干系人管理91、 [单选] 在项目执行期间,一名外部干系人反对一项重大范围变更。除非重新评估干系人的决定,否则项目进展将受到影响。项目经理下一步该怎么做? 5.范围管理92、 [单选] 一客户给你一复杂项目的采购工作说明书&#x…

配置全新服务器深度学习一套流程

目录 1.安装anaconda2.配置cuda3.配置cudnn4.配置新的pytorch环境5.安装rdkit包6.小问题记录 1.安装anaconda 直接参考视频 总结: 1.下载anaconda安装包,尽量不下载最新的版本 2.bash 对应安装包,一直回车,yes 3.配置环境vim ~/.…

实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试

画面描述:这个视频中,一位穿着蓝色西装的女性站在室内,背景中可以看到一些装饰品和植物。她双手交叉放在身前,面带微笑,似乎在进行一场演讲或主持活动。她的服装整洁,显得非常专业和自信。 一、简介 阿里通义千问开源新一代视觉语言模型Qwen2-VL。其中,Qwen2-VL-72B在大…

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外,nginx的配置一般如下: http {server {listen 80;server_name localhost;location / {root html; …

鸿蒙开发入门day19-使用NDK接口构建UI(一)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 NDK接口概述 整体架构 开发流程 接入ArkTS页面 占位组件 NDK组…

unity3d入门教程六

unity3d入门教程六 15.1预制体15.2编辑预制体15.3在场景中编辑15.4动态创建实例15.5实例的销毁16.1(练习)子弹发射16.2定时器16.3键盘事件 15.1预制体 火神山10天建成,使用了预制体技术 一个个小房间都是事先建造好的,最后吊车装…

ICPC网络赛 以及ACM训练总结

一、训练反思 关于我自己暑假期间训练的反思,我承认无论是因为什么原因,我自己浪费我整整一个暑假的时间,暑假期间正是我们集训的关键时期,这期间没有任何的事情来打扰我们学习,而我却熬夜,白天训练懈怠&a…

在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程(远程访问) 文章目录 在服务器上开Juypter Lab教程(远程访问)一、安装anaconda1、安装anaconda2、提权限3、运行4、同意协议5、安装6、是否要自动初始化 conda7、结束8、检查 二、Anaconda安装Pytorch…