Ubuntu22.04环境下源码安装OpenCV 4.8.1

news2024/10/12 3:18:31

因为项目需要用OpenCV对yolov8模型进行推理,通过DNN模块,之前本地的OpenCV版本是4.5.4(好像安装完ROS2 humble之后系统就自带了opencv),加载onnx模型一直报错,网上查询到需要4.7以上,干脆直接升级到4.8.1了。

目录

  • 1.源码下载
  • 2.环境准备
  • 3.源码编译
  • 4.环境配置
  • 5.测试验证
  • 6.CMake中指定OpenCV版本

1.源码下载

opencv:https://github.com/opencv/opencv

  • 选择4.8.1的源码包进行下载
    在这里插入图片描述

opencv_contrib:https://github.com/opencv/opencv_contrib

  • 同样选择4.8.1的源码包进行下载
    在这里插入图片描述
  • 下载好后选择通过图形界面或者unzip命令进行解压。并将contrib源码文件夹移动到opencv文件夹中
    在这里插入图片描述

2.环境准备

  • 安装依赖和cmake工具
    打开终端,输入如下代码进行安装依赖和cmake工具安装:
sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libgtk-3-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

在这里插入图片描述

3.源码编译

  • 在之前解压的opencv-4.8.1文件夹下建立一个build文件夹,并进入该文件夹
mkdir build && cd build

PS:如果你不想安装opencv的其他一些语言的接口,可以自行参考下面的命令

指定编译类型,并将编译后的库安装到/usr/local/

sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.8.1/modules -D BUILD_JAVA=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF CMAKE_INSTALL_PREFIX=/usr/local ..

耐心等待,会下载一些其他库、、、
在这里插入图片描述
在这里插入图片描述

  • 编译
sudo make -j4

在这里插入图片描述
在这里插入图片描述

  • 安装到/usr/local
sudo make install

在这里插入图片描述

4.环境配置

  • 配置导入路径
sudo gedit /etc/ld.so.conf

在打开的文件后面添加/usr/local/lib,然后用下面的命令加载更新后的配置。
在这里插入图片描述

sudo ldconfig 
  • 输入以下命令检查安装版本
pkg-config opencv --modversion

如果出现如下错误:
在这里插入图片描述

解决:

 cd /usr/local/lib
 sudo mkdir pkgconfig # 如果已经存在则不需要再创建
 cd pkgconfig
 sudo gedit opencv.pc

在打开的文本写入如下信息,保存,然后退出

prefix=/usr/local

exec_prefix=${prefix}

includedir=${prefix}/include

libdir=${exec_prefix}/lib


Name: opencv

Description: The opencv library

Version:4.8.1

Cflags: -I${includedir}/openCV4

Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core

~
  • 修改rc文件
gedit ~/.bashrc

在文件末尾添加两行:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

关闭保存后,使用以下命令更新以下配置

source /.bashrc

输入以下命令检查安装版本

pkg-config opencv --modversion

在这里插入图片描述

5.测试验证

打开终端,进入原先opencv源码目录下,并输入以下命令对例程进行编译

cmake .
make
./opencv_example

得到以下画面

在这里插入图片描述
在这里插入图片描述

6.CMake中指定OpenCV版本

  • CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(OpenCVProject)

# 指定OpenCV版本的路径
set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)
message(STATUS "***OpenCV version: ${OpenCV_VERSION}")

add_executable(MyOpenCVApp src/main.cpp)

target_link_libraries(MyOpenCVApp ${OpenCV_LIBS})
  • main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>

int main()
{
    std::cout << "OpenCV version: " << CV_VERSION << std::endl;
    return 0;
}

参考:https://www.bilibili.com/read/cv30840280/

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

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

相关文章

vue3之依赖注入provide(提供)/inject(注入)

通常情况下&#xff0c;需要从父组件传值到子组件使用props足以&#xff0c;但是如果是深层嵌套的组件&#xff0c;如果某个深层的组件想要得到祖先组件的部分数据&#xff0c;使用props的话需要沿着各个嵌套的组件着层传递数据&#xff0c;而在传递过程中的组件压根就不需要使…

你了解 SpringBoot 在一次 http 请求中耗费了多少内存吗?

在实际工作中&#xff0c;经常会需要进行在全链路压测&#xff0c;优化 GC参数&#xff0c;优化 JVM 内存分配。 当知道 1 次 RPC 请求和 Http 请求需要的堆内存大小后&#xff0c;你可以精确地计算&#xff1a;指定的并发量之下&#xff0c;系统需申请多少堆内存。同时结合 J…

若依 根据角色权限 动态添加路由 学习

源于这个问题对若依权限改造的学习&#xff0c;用ASP.NET Core Web api 做后端&#xff0c;所以不是纯净的若依前端&#xff0c;有部分改过。 ​​​​​​​若依 从字典类型跳到字典数据跳到了404-CSDN博客 从路由守卫获取到用户信息开始&#xff0c;到路由跳转结束的过程 …

小猿搜题冲榜/刷排名/专用思路-理论速度1小时/3.6w分 附带0s教程

小猿搜题冲榜/刷排名/专用思路-理论速度1小时/3.6w分 附带0s教程 ⚠️&#xff1a;这个方法很多还需要手动操作&#xff0c;我目前无法用代码完全实现&#xff0c;如果你有兴趣可以给我提issue我们一起讨论。 冲榜思路 先说整体思路&#xff1a;抓包改答案adb模拟 之后详细…

10月更新|国内可用的ChatGPT攻略镜像中文网站

一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1&#xff0c;支持MJ绘画 ② chat.lify.vip 支持通用全模型&#xff0c;支持文件读取、插件、绘画、AIPPT ③ AI Chat支持GPT3.5/4&#xff0c;4o以及MJ绘画 1. 什么是镜像站 镜像站&#xff08;Mirror Site&#xff0…

【GO基础学习】环境安装到基础语法(1)

文章目录 环境安装GoLand 安装GO基础GO特点类型和函数Init函数和main函数GO命令下划线变量和常量数组切片Slice 引用 环境安装 下载地址&#xff1a;https://www.golangroadmap.com/ 安装目录文件说明&#xff1a; api&#xff1a;每个版本的 api 变更差异。 bin&#xff1…

JAVA 字符串 trim() 方法的正确使用

JAVA类里面 trim() 方法大家都比较熟悉&#xff0c;就是用来清除掉字符串首尾的空白字符。但在一次程序运行崩溃后&#xff0c;查找具体原因时&#xff0c;发现是由字符串末尾的一个回车符号 "\r" 所导致的。于是有机会仔细读了下该方法的 java 文档说明。其中一段内…

Docker理念

1.为什么会出现Docker Docker 的出现并非偶然&#xff0c;而是由一系列技术发展趋势和实际需求所推动的一项技术创新。 随着软件行业的快速发展&#xff0c;开发团队的规模不断扩大&#xff0c;成员可能分布在不同的地理位置&#xff0c;使用不同的操作系统和开发工具。这就导致…

CSD(computational storage devices)架构介绍

CSD&#xff08;computational storage devices&#xff09;架构介绍 前言一、CSD与传统SSD的架构对比二、为什么要采用FPGA三、FPGA缺点四、个人总结reference 前言 虽然一直有接触CSD&#xff0c;但一直对其原理和架构知之甚少&#xff0c;半知不解。今天&#xff0c;趁着我还…

element-ui点击文字查看图片预览功能

今天做一个点击文字查看图片的功能&#xff0c;大体页面长这样子&#xff0c;点击查看显示对应的图片 引入el-image-viewer&#xff0c;点击的文字时候设置图片预览组件显示并传入图片的地址 关键代码 <el-link v-if"scope.row.fileList.length > 0" type&…

模型预测控制工具包——ACADO:简介、安装与测试

模型预测控制工具包——ACADO&#xff1a;简介、安装与测试 ACADO 工具包简介ubuntu20.04 安装 ACADO工具包安装依赖安装ACADOtoolkit 测试 ACADO 工具包简介 ACADO Toolkit 是一个用 C 编写的用于自动控制和动态优化的软件环境和算法集合。 它提供了一个通用框架&#xff0c;…

三菱FX3UPLC定位控制程序举例

测试程序的编写 1.输入输出的分配输入输出的分配如下表所示。 2、相关软元件的设定 相关软元件也有所不同。更改定位指令的脉冲输出端时&#xff0c;根因设定为定位指令的脉冲输出端的软元件不同&#xff0c;据更改的内容&#xff0c;需要变更设定的相关软元件。 3.程…

【大模型新书】掌握大语言模型:高级技术、应用、尖端方法和顶尖LLMs

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/93e5a5c008474f72a0335083ef9c4893.png)我已将 这本大模型书籍免费分享 出来&#xff0c;需要的小伙伴可以扫取。 主要特性 探索自然语言处理&#xff08;NLP&#xff09;基础和大语言模型基本原理&#xff0c;包括…

若依前端后打成一个JAR包部署

客户需要将项目前后端作为一个整体打包成jar&#xff0c;不使用nginx方式转发。使用框架是若依前后端分离&#xff0c;后端springboot&#xff0c;前端vue&#xff0c;目的就是把vue打入jar。 一、前端修改 ruoyi-ui/src/router/index.js文件 &#xff0c;将 mode: ‘history’…

一键生成二维码的源码系统 电脑+手机版自适应代码 带完整的安装代码包以及搭建部署教程

系统概述 一键生成二维码的源码系统是一款集二维码生成、管理和应用于一体的综合性平台。它采用先进的技术和算法&#xff0c;能够快速、准确地生成各种类型的二维码&#xff0c;包括文本、链接、图片等。同时&#xff0c;该系统还具备高度的灵活性和可扩展性&#xff0c;能够…

如何使用bpmn-js实现可视化流程管理

介绍 BPMN-JS是一个流行的开源库&#xff0c;用于在Web应用程序中可视化、创建、编辑和分析BPMN&#xff08;Business Process Model and Notation&#xff0c;业务流程建模与表示法&#xff09;2.0 图。BPMN是一种国际标准的图形化语言&#xff0c;用于描述企业中的业务流程&a…

mongodb 连接, 去重,索引

mongodb 去重,索引 MongoDB Community Server 下载: https://www.mongodb.com/try/download/community GUI: The Ultimate Client, IDE and GUI for MongoDB | Studio 3T 连接 设置允许远程(局域网)连接 (windows) 在打开文件 "<你的安装目录>\MongoDB\Server\…

k3s安装指定版本以及离线安装(docker)

首先下载你所需要版本的k3s安装包&#xff0c;目录结构如下所示&#xff0c;我这里是v1.19.15k3s2。 1.首先赋予可执行权限后进行安装。 # k3s 需要赋予可执行权限 sudo chmod x k3s sudo chmod x k3s-install.sh2.然后将k3s的二进制文件复制到/usr/local/bin/ cp k3s /us…

✨机器学习笔记(七)—— 交叉验证、偏差和方差、学习曲线、数据增强、迁移学习、精确率和召回率

机器学习笔记&#xff08;七&#xff09; 1️⃣评估模型&#x1f397;️使用测试集评估模型&#x1f397;️交叉验证集&#xff08;cross validation&#xff09; 2️⃣偏差和方差&#xff08;Bias / Variance&#xff09;3️⃣学习曲线&#xff08;Learning curves&#xff09…

自动化分析背后,一站式数据分析平台!

自动化分析背后&#xff0c;一站式数据分析平台&#xff01; 前言一站式数据分析平台 前言 在如今的企业管理中&#xff0c;数据已经不再是简单的存储和备份&#xff0c;而是成为了决策的核心驱动力。尤其是在面对海量数据的情况下&#xff0c;企业急需一个能够高效处理、分析…