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文件夹下

在这里插入图片描述

使用教程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记1次nacos拉取不到配置问题

今天部署1套新的环境,nacos由运维部署完成,提供了3个端口 30820 31558 32239 启动的时候提示 [Nacos Config] config[dataIdredis.yml, groupDEFAULT_GROUP] is empty 我再三确认页面上确实已经配置好了 于是开启debug -401 Client not connected, c…

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

环境准备Jenkins工具、环境、插件配置全局变量配置安装插件Deploy to containerMaven Integration plugin配置国内mvn源 创建maven项目 环境准备 1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage Jenkins>tools>JDK 安装 安装插件 Deploy to contai…

居民最低生活保障人数数据,2020-2022年数据,shp矢量及表格数据均有!

居民最低生活保障,是国家对共同生活的家庭成员人均收入低于当地最低生活保障标准,且符合当地最低生活保障家庭财产状况规定的家庭,给予最低生活保障。 基本信息. 数据名称: 居民最低生活保障人数数据 数据格式: shpexcel 数据几何类型: 面…

【Linux】stat命令使用

stat命令 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 著者 由Michael Meskes撰写。 stat命令 -Linux手册页 语法 stat [文件或目录] 命令选项及作用 执行令 : stat --help 执行命令结果 参数 -L、 --dereference 跟…

<JavaEE> 经典设计模式之 -- 使用阻塞队列实现“生产者-消费者模型”

目录 一、阻塞队列和“生产者-消费者模型”之间的关系 二、标准库提供了阻塞队列 三、实现自己的阻塞队列 3.1 基于数组实现普通的环形队列 3.2 将上述代码改造为线程安全 3.3 增加阻塞功能 四、使用阻塞队列实现“生产者-消费者模型” 一、阻塞队列和“生产者-消费者模…

react新旧生命周期钩子

以下的内容根据尚硅谷整理。 旧生命钩子 辅助理解: 红色框:挂载时生命钩子蓝色框:更新时生命钩子绿色框:卸载时生命钩子 挂载时 如图所示,我们可以看到,在组件第一次挂载时会经历: 构造器&a…

数据库原理: 笛卡儿积

笛卡儿积(Cartesian Product)是集合论中的一个概念,也在数据库中的查询操作中经常使用。笛卡儿积是指两个集合(或更多集合)之间所有可能的组合。如果有两个集合A和B,它们的笛卡儿积记作A B,表示…

深入理解HashMap:Java中的键值对存储利器

HashMap是Java中常用的数据结构之一,它提供了一种键值对的存储机制,适用于快速查找和检索。本文将深入探讨HashMap的概念、内部结构、工作原理以及在多线程环境下的一些问题。 1. HashMap的概念 HashMap是Java中的一种数据结构,用于存储键值…

RPC简介和grpc的使用

文章目录 Rpc基本概念RPC 机制和实现过程RPC的机制的诞生和基础概念总结下RPC执行步骤: 安装gRPC和Protobuf安装proto 服务定义gRPC 优势 gRPC入门简单使用 代码仓库 Rpc基本概念 RPC(Remote Procedure Call)远程过程调用,是一种…

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…

《点云进阶》专栏文章目录

目录 一、PCL进阶篇* 二、Open3D进阶篇 一、PCL进阶篇 * PCL 最小二乘拟合二维直线PCL 最小二乘拟合空间直线PCL 计算点云的倒角距离&#xff08;Chamfer Distance&#xff09;PCL 点云配准精度评价——点到面的均方根误差PCL 可视化八叉树PCL 计算Hausdorff距离PCL 从变换矩…

生物动力葡萄酒的快速指南

虽然我们大多数人都熟悉有机酿酒和农业&#xff0c;但围绕生物动力学仍有许多困惑和神秘。无论你是否完全陌生&#xff0c;或者你已经听到一些小道消息&#xff0c;我们在这里揭开这种独特的葡萄酒生产方法的神秘面纱。 生物动力葡萄酒就是一个更全面的有机酿酒过程&#xff0c…

微服务的利与弊

一、前言 自从大多数web架构从单体演进到服务拆分&#xff0c;到微服务一统天下的几年来&#xff0c;应该没有web应用不是微服务架构的吧。最开始是阿里的doubble分层架构&#xff0c;到后来的SpringCloud全家桶&#xff0c;还有各个大厂自己定义的一套服务治理框架。微服务无…

万界星空科技五金家具行业MES解决方案

MES系统如何与家具企业生产相匹配&#xff1f;相较于其它大多数工业软件&#xff0c;MES系统无疑是受企业欢迎的软件之一。MES系统处于制造生产企业信息化的核心领域&#xff0c;有着承上启下的作用。那MES系统如何与家具企业生产相匹配&#xff1f; 五金家具行业的工艺特点&am…

【C语言基础】嵌入式面试经典题(C语言篇)----有新的内容会及时补充、更新!

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

金融行业文件摆渡,如何兼顾安全和效率?

金融行业是数据密集型产业&#xff0c;每时每刻都会产生海量的数据&#xff0c;业务开展时&#xff0c;数据在金融机构内部和内外部快速流转&#xff0c;进入生产的各个环节。 为了保障基础的数据安全和网络安全&#xff0c;金融机构采用网络隔离的方式来隔绝外部网络的有害攻击…

【洛谷算法题】P1909-买铅笔【入门2分支结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P1909-买铅笔【入门2分支结构】&#x1f30f;题目背景&#x1f30f;题目描述&…

c# OpenCV安装(一)

一 通过NuGet 安装四个拓展包 OpenCvSharp4、OpenCvSharp4.Extensions、OpenCvSharp4.runtime.win、OpenCvSharp4.WpfExtensions C#使用OpenCV的一些代码 需要加头文件 using OpenCvSharp; //为了使用opencv using Point OpenCvSharp.Point; //为了确定我们使用的poin…

智能井盖传感器产品介绍,井盖传感器推荐

智能井盖传感器是一种先进的设备&#xff0c;能够提高城市管理的智能化水平。该传感器作为城市生命线建设的核心组成部分&#xff0c;为智慧城市的正常建设提供了有力的保障&#xff0c;能够提高城市管理的智能化水平。这种设备通过高度灵敏的传感器网络&#xff0c;实时监测井…

pdi-ce-9.4.0.0-343.zip和pentaho-server-ce-9.4.0.0-343.zip区别及简单使用

目录 &#x1f351;一、概述&#x1f34a;1.1、pdi-ce-9.4.0.0-343.zip&#x1f34a;1.2、pentaho-server-ce-9.4.0.0-343.zip &#x1f351;二、简单使用&#x1f34a;2.1、pdi-ce-9.4.0.0-343&#x1f34a;2.2、pentaho-server-ce-9.4.0.0-343&#x1f34a;2.3、联合使用 &am…