SLAM算法与工程实践——SLAM基本库的安装与使用(2):OpenCV库

SLAM算法与工程实践系列文章

下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此

SLAM算法与工程实践系列文章链接


下面是专栏地址:

SLAM算法与工程实践系列专栏


文章目录

  • SLAM算法与工程实践系列文章
    • SLAM算法与工程实践系列文章链接
    • SLAM算法与工程实践系列专栏
  • 前言
  • SLAM算法与工程实践——SLAM基本库的安装与使用(2):OpenCV库
  • OpenCV
    • 安装OpenCV 3.4.5
    • 查看OpenCV版本
    • 使用教程


前言

这个系列的文章是分享SLAM相关技术算法的学习和工程实践


SLAM算法与工程实践——SLAM基本库的安装与使用(2):OpenCV库

OpenCV

安装OpenCV 3.4.5

安装OpenCV 3.4.5 (建议源码安装 安装时间较长 耐心等待 ) OpenCV3.4.5链接 提取码:slam

We use OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 2.4.3. Tested with OpenCV 2.4.11 and OpenCV 3.2.

1)安装依赖项

# ubuntu 16.04
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev
sudo apt-get install libtiff4.dev libswscale-dev libjasper-dev

在这里插入图片描述

# ubuntu 20.04依赖项
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev 
sudo apt-get install libavformat-dev libjpeg.dev libtiff5.dev 
sudo apt-get install libswscale-dev libjasper-dev 
sudo apt-get install libcanberra-gtk-module libcanberra-gtk3-module #或者
sudo apt-get install libcanberra-gtk*

2)安装 OpenCV 3.4.5

进入下载的安装压缩包,解压到某文件夹,然后进去该文件夹建立build文件夹 编译文件夹

cd opencv-3.4.5
# 下面为编译的代码
mkdir build
cd build
cmake ..
# make -j表示满线程编译,尽量不要用满线程编译,容易卡死
make -j4 或者 j8	# 根据电脑的实际性能设置线程数# 或者
cmake -B build
cmake --build build
# 注意上面的两个命令都要执行,且是顺序执行# 编译完后安装
sudo make install

在这里插入图片描述

我这里满线程编译结果卡死在了89%处

在这里插入图片描述

在这里插入图片描述

3)查询OpenCV版本、库以及头文件目录的三个命令来确保上面的OpenCV安装步骤都正常:

pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs   opencv

在这里插入图片描述

4)配置环境变量

sudo vim /etc/ld.so.conf.d/opencv.conf

在打开的空白文件中添加

/usr/local/lib

执行命令 sudo ldconfig ,使配置的环境变量生效

5)配置 .bashrc ,末尾添加下面两行

# 打开.bashrc
sudo vim /etc/bash.bashrc# 添加以下两行内容到.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

在这里插入图片描述

5)source 与 update

source /etc/bash.bashrc
sudo updatedb

若遇到找不到命令updatedb

在这里插入图片描述

执行命令

sudo apt-get install mlocate
# 安装完成之后sudo updatedb

参考:ubuntu16.04 命令sudo updatedb报错: command not found解决方案

6)测试是否正常安装 (成功会出现带 “hello opcv” 字样的窗口)

cd opencv-3.4.5/samples/cpp/example_cmake
cmake .
make
./opencv_example

在这里插入图片描述

查看OpenCV版本

参考:

ubuntu下查看opencv安装路径以及版本号

ROS+ubuntu20.04+opencv4.5.5

查看linux下的opencv安装库:

pkg-config opencv --libs

在这里插入图片描述

查看linux下的opencv安装版本:

pkg-config opencv --modversion

在这里插入图片描述

或者

opencv_version

查看linux下的opencv安装路径:

sudo find / -iname "*opencv*"

在全盘上不区分大小写,搜索带有关键字opencv的所有文件及文件夹都会输出到终端,如果输出太长建议输出到txt文件里查看,如下:

sudo find / -iname "*opencv*" > /home/xxx/Desktop/opencv_find.txt

可知opencv安装在 /usr/local/lib 里面

在这里插入图片描述

.hpp文件在/usr/local/include/opencv2/文件夹下

在这里插入图片描述

查看opencv版本

pkg-config --modversion opencv4 

在这里插入图片描述

可以看到这里有两个OpenCV的版本,因为我自己安装的是3.4.5 ,安装ROS后又自带了OpenCV 4的版本

输入查找命令,可以看到opencv4.2编译的动态库在/usr/lib/x86_64-linux-gnu/文件夹下

在这里插入图片描述

.hpp则在/usr/include/opencv4/opencv2文件夹下

在这里插入图片描述

使用教程

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

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

相关文章

RabbitMQ创建新用户,并给用户添加角色和授权

一、进入容器 1.1 查看运行容器的详细信息 docker ps -a1.2 进入容器命令 docker exec -it 容器ID /bin/bash 或 docker exec -it 容器name bash 1.3 退出容器命令 exit 或者 CtrlQP 二、操作RabbitMQ 2.1 查看用户列表 注:先进入到容器内部 rabbitmqctl list_user…

SQL语言重温

数据库语言重温 笔记背景SQL教程一些最重要的 SQL 命令SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY 关键字 笔记背景 由于工作需要,现重温简单SQL语言,笔记记录如下。 SQL教程 SQL(Structured Query Language:结构化查询语言&…

代码随想Day29 | 491.递增子序列、46.全排列、47.全排列 II

491.递增子序列 本题和 90.子集II 非常像,但又很不一样,很容易掉坑里。 这道题需要考虑的点有: 如何去除同一层已经使用过某数的情况:需要在某一层使用哈希表,来记录状态,实现去重,因为题中规定…

【PyTorch】权重衰减

文章目录 1. 理论介绍2. 实例解析2.1. 实例描述2.2. 代码实现 1. 理论介绍 通过对模型过拟合的思考,人们希望能通过某种工具调整模型复杂度,使其达到一个合适的平衡位置。权重衰减(又称 L 2 L_2 L2​正则化)通过为损失函数添加惩…

uni-app 微信小程序之加载行政区图

文章目录 1. 实现效果2. 实现步骤 1. 实现效果 2. 实现步骤 使用三方组件 ucharts echarts 高性能跨全端图表组件页面导入引入的三方组件 组件demo代码 <template><view class"qiun-columns"><view class"cu-bar bg-white margin-top-xs"…

【Flink on k8s】- 2 - 简要介绍 Kubernetes

目录 一、Kubernetes 概述 二、历史版本演进 三、相对主要的优劣势 四、Kubernetes 的基本特性

文献阅读:基于改进ConvNext的玉米叶片病害分类

文献阅读&#xff1a;基于改进ConvNext的玉米叶片病害分类 CBAM注意力机制模块&#xff1a; 1&#xff1a;通道注意力模块&#xff0c;对输入进来的特征层分别进行全局平均池化&#xff08;AvgPool&#xff09;和全局最大池化&#xff08;MaxPool&#xff09;&#xff08;两个…

可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。GB28181视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存…

ROS-ROS通信机制-参数服务器

文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点…

多人聊天UDP

服务端 package 多人聊天;import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList;…

零基础小白怎么准备蓝桥杯-蓝桥杯竞赛经验分享

零基础小白怎么准备蓝桥杯-蓝桥杯竞赛经验分享 前言竞赛简介竞赛目的如何备战1.基础学习2.实战训练&#xff08;非常重要&#xff09; 资料分享 前言 博主在蓝桥杯中获得过十四届Java B 组的省一国二&#xff0c;本文为大家介绍一下蓝桥杯并分享一下自己的参赛经验。 竞赛简介…

golang学习笔记——go互斥锁

文章目录 互斥锁&#xff1a; sync.Mutexsync.WaitGroup 计数器例子func (*WaitGroup) Addfunc (*WaitGroup) Donefunc (*WaitGroup) Wait 读写互斥锁参考资料 临界区总是需要通过同步机制进行保护的&#xff0c;否则就会产生竞态条件&#xff0c;导致数据不一致。 互斥锁&…

封装校验-----Vue3+ts项目

登录校验页面 <script setup lang"ts"> import { ref } from vue import { mobileRules, passwordRules } from /utils/rules const mobile ref() const password ref() </script><!-- 表单 --><van-form autocomplete"off">&l…

数位统计DP

数位DP 数位&#xff08;digit&#xff09;指的是一个数字中的每一位。例如&#xff0c;对于整数1234来说&#xff0c;它有四个数位&#xff0c;分别是1、2、3和4。在数位统计 DP 中&#xff0c;我们通常将数字拆解成各个数位&#xff0c;并使用这些数位进行状态定义和转移。通…

Vue在Computed计算属性下,获取Promise then的返回值无效为空

原因&#xff1a;Promise是异步的&#xff0c;如果业务逻辑不放在then内部&#xff0c;那么可能时机无法拿到then内返回的变量。 解决方案&#xff1a;Vueuse库提供了异步计算属性的钩子&#xff0c;使用Vueuse库的computedAsync即可。 import { computedAsync } from vueuse…

电脑设置代理IP,上网怎么使用代理

在我们的日常生活中&#xff0c;代理IP的使用越来越常见。当我们需要隐藏自己的真实IP地址时&#xff0c;代理IP就成为了我们的不二选择。那么&#xff0c;如何设置代理IP来固定上网地址呢&#xff1f;本文将详细介绍代理IP的设置方法以及如何使用代理IP固定上网地址。 一、代…

Failed to connect to github.com port 443 after 21055 ms: Timed out

目前自己使用了梯*子还是会报这样的错误&#xff0c;连接不到的github。 查了一下原因&#xff1a; 是因为这个请求没有走代理。 解决方案&#xff1a; 设置 -> 网络和Internet -> 代理 -> 编辑 记住这个IP和端口 使用以下命令&#xff1a; git config --global h…

Kafka集群调优

一、前言 我们需要对4个规格的kafka能力进行探底&#xff0c;即其可以承载的最大吞吐&#xff1b;4个规格对应的单节点的配置如下&#xff1a; 标准版&#xff1a; 2C4G铂金版&#xff1a; 4C8G专业版&#xff1a; 8C16G企业版&#xff1a; 16C32G 另外&#xff0c;一般来讲…

git 分支的创建与删除

一 创建本地分支 git checkout -b codetwo //创建本地分支 codetwo git branch newcode //创建本地分支newcode创建的分支如下图&#xff1a; 用checkout的方式创建&#xff0c;只是创建的同时还切换到了这个本地分支 二 创建远程分支 git branch newcode //创…

[leetcode 双指针]

1. 三数之和 M :::details 给你一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;请你找出所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例…