【PCL】Ubuntu22.04 安装 PCL 库

news2024/9/30 12:08:50

文章目录

    • 前言
    • 一、更新系统软件包
    • 二、安装依赖项
    • 三、下载 PCL 源码
    • 四、编译和安装 PCL
    • 五、测试安装成功
      • 1、 pcd_write.cpp
      • 2、CMakeLists.txt
      • 3、build

前言

  PCL(Point Cloud Library)是一个开源的大型项目,专注于2D/3D图像和点云处理。PCL为点云数据的处理和分析提供了丰富的功能和算法,这些功能包括但不限于点云滤波、特征提取、表面重建、模型拟合、配准、分割等。下面我们再 Ubuntu 环境下安装 PCL 库。

一、更新系统软件包

  首先确保 Ubuntu 系统上的软件包都是最新的,打开终端更新软件包。

sudo apt update
sudo apt upgrade

二、安装依赖项

  PCL 依赖于一些其他的库和工具,使用以下命令安装这些依赖项。

sudo apt install git cmake libboost-all-dev libeigen3-dev libflann-dev libvtk7-dev libqhull-dev

  PCL 编译与安装需要 make 与 camke,使用以下命令安装这些。

sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake

三、下载 PCL 源码

  在终端执行以下命令,将 PCL 源码下载到 Ubuntu 环境中。

sudo apt-get install git
git clone https://github.com/PointCloudLibrary/pcl.git

四、编译和安装 PCL

  进入下载好的 PCL 库源码目录,并创建一个新的目录用于构建。

cd pcl
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr\
      -DCMAKE_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \
      -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

五、测试安装成功

  新建文件夹 test ,并新建 pcd_write.cpp,CMakeLists.txt,build 文件夹。
在这里插入图片描述

1、 pcd_write.cpp

#include <iostream>   
#include <pcl/io/pcd_io.h>  
#include <pcl/point_types.h>  
 
int main () {  
  pcl::PointCloud<pcl::PointXYZ> cloud;  // 创建一个PointXYZ类型的点云对象  
  
  // 设置点云的基本属性  
  cloud.width    = 5;  // 设置点云的宽度(点数)  
  cloud.height   = 1;  // 设置点云的高度(通常为1,表示非组织化点云)  
  cloud.is_dense = false;  // 设置点云是否稠密(false表示点云可能包含NaN或无穷值)  
  cloud.resize (cloud.width * cloud.height);  // 根据宽度和高度调整点云的大小  
  
  // 使用随机数填充点云数据  
  for (auto& point: cloud) {  
    point.x = 1024 * rand () / (RAND_MAX + 1.0f);  // 为点的x坐标赋一个0到1024之间的随机浮点数  
    point.y = 1024 * rand () / (RAND_MAX + 1.0f);  // 为点的y坐标赋一个0到1024之间的随机浮点数  
    point.z = 1024 * rand () / (RAND_MAX + 1.0f);  // 为点的z坐标赋一个0到1024之间的随机浮点数  
  }  
  
  // 将点云数据保存为PCD文件  
  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);  // 使用ASCII编码保存点云到文件  
  std::cerr << "Saved " << cloud.size () << " data points to test_pcd.pcd." << std::endl;  // 输出保存的点云大小信息  
  
  // 遍历并打印点云中的每个点  
  for (const auto& point: cloud)  
    std::cerr << "    " << point.x << " " << point.y << " " << point.z << std::endl;  // 输出每个点的x, y, z坐标  
  
  return (0); 
}

2、CMakeLists.txt

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)  
  
project(MY_GRAND_PROJECT)  
  
find_package(PCL 1.3 REQUIRED)  
  
# 将PCL的包含目录添加到项目的包含目录列表中,以便能够找到PCL的头文件  
include_directories(${PCL_INCLUDE_DIRS})  
  
# 将PCL的库目录添加到链接器搜索路径中  
link_directories(${PCL_LIBRARY_DIRS})  
  
add_definitions(${PCL_DEFINITIONS})  
  
# 添加一个可执行文件目标,名为pcd_write_test,源文件为pcd_write.cpp  
add_executable(pcd_write_test pcd_write.cpp)  
  
# 将PCL的库链接到pcd_write_test可执行文件目标。这里${PCL_LIBRARIES}包含了PCL及其依赖的所有库  
target_link_libraries(pcd_write_test ${PCL_LIBRARIES})

3、build

cd build
cmake ..
make

  当我们完成以上操作就会生成一个可执行文件,执行后会发现我们成功的生成了五个点云。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

创客匠人第二期“老蒋面对面”交流会圆满收官!

磅礴的大雨浇不灭奋斗的激情。9月24日&#xff0c;创客匠人第二期老蒋面对面—“创客匠人让知识变现不走弯路”内部大会在集美隆重举行。 本次内部大会旨在传递公司战略精神&#xff0c;深度探讨公司品牌传播的价值、方向和策略。这不仅是一次内部的交流与分享&#xff0c;更是…

详解 JDBC和连接池

目录 一.JDBC概述 1.介绍 2.好处 3.JDBC API 二.数据库连接 1.前置工作 2.方法一 3.方法二 4.方法三 5.方法四 6.方式五(配置文件) 三.ResultSet&#xff08;结果集&#xff09; 1.介绍 2.代码演示 3.底层原理 四.预处理 1.SQL注入 2.PreparedStatement 接口 …

一个很好的例子说明均值平滑滤波器有旁瓣泄漏效应

禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》P89

【C/C++】错题记录(二)

题目一 题目二 x是int型&#xff0c;当x被赋值为1.2浮点型时&#xff0c;x实际赋值为1&#xff0c;所以4.8/5.0由于/是整除&#xff0c;结果为小于1的小数&#xff0c;所以y被赋值为0。 题目三 题目四 题目五 题目六 在这段代码中&#xff0c;定义了一个联合体union X&#xf…

创建Vue项目的时出现:无法加载文件 E:\software\node\node_global\vue.ps1,因为在此系统上禁止运行脚本

创建Vue项目的时出现的问题:出现&#xff1a;无法加载文件 E:\software\node\node_global\vue.ps1&#xff0c;因为在此系统上禁止运行脚本 解决方法&#xff1a; .PowerShelll的执行政策阻止了该操作,用 get-ExecutionPolicy 查看执行策略的状态为受限 输入Set-ExecutionPo…

中关村环球时尚产业联盟 东晟时尚产业创新中心成立

2024年9月6日&#xff0c;中关村环球时尚产业联盟与东晟时尚创新科技&#xff08;北京&#xff09;有限公司于中关村科技园东城园举行了隆重的战略合作签约仪式。 中关村科技园东城园领导发表了致辞&#xff0c;并表示东城区作为首都北京的核心区域&#xff0c;拥有深厚的历史…

书生大模型实战训练营 第三期 入门岛

1.Linux 任务一 完成SSH连接与端口映射并运行hello_world.py vscode自带的端口设置功能很方便 2.Python 任务一 实现wordcount函数 任务二 vscode 单步调试

Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件

文章目录 Android开发 使用platform.pk8和platform.x509.pem文件生成platform.jks文件环境准备使用OpenSSL工具进行格式转换1.将platform.pk8转换为PEM格式&#xff1a;2.使用platform.pem和platform.x509.pem生成PKCS#12格式的PFX文件&#xff08;platform.p12&#xff09;&am…

k8s部署考试系统

一、配置nfs 二、配置前端 1.部署deployment清单 2.补充&#xff1a; 3.访问测试pod 三、后端 1.在pes目录中找到docker文件&#xff0c;创建镜像 从nfs服务器上复制一个pes/java/目录到一个有docker环境的主机(master)上生成java镜像 [rootnfs ~]# scp -r pes/java root192…

废品回收小程序/环保垃圾回收/收二手垃圾小程序/分类资源回收系统/独立版系统源码

>>>系统简述&#xff1a; 1.以微信小程序为基础进行开发&#xff0c;体验好&#xff0c;操作方便 2.从用户下单到回收员接单&#xff0c;在到回收站接收&#xff0c;在到代理全流程通过手机端管理 3.支持废品分类下单&#xff0c;并支持分类数据统计 4.独创回收员多个…

mysql—半同步模式

mysql的并行复制 在172.25.254.20(slave)主机上 默认情况下slave中使用的是sql单线程回放 在master中时多用户读写&#xff0c;如果使用sql单线程回放那么会造成组从延迟严重 开启MySQL的多线程回放可以解决上述问题 mysql> show processlist; 在配置文件中进行编辑 [root…

LVS+keepalived整合负载均衡配置

准备三台服务器&#xff1b;负载均衡服务器192.168.45.136&#xff0c;后端机器1&#xff0c;92.168.45.135&#xff0c;后端机器2&#xff0c;192.168.45.138 在两台后端机器上安装nginx服务&#xff0c;yum install -y nginx,并且启动nginx服务&#xff0c;systemctl start …

【Linux学习】【Ubuntu入门】2-1 Linux系统下运行C语言输出hello word

1.双击打开VMware软件&#xff0c;点击开启此虚拟机后&#xff0c;等待点击头像输入密码进入 2.“CtrlAltt”调出命令行终端&#xff0c;输入命令sudo apt-get install vim安装vim&#xff0c;输入命令sudo apt-get install gcc安装gcc 3.输入命令vi hello.c进入C语言编写环境&…

【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞

漏洞描述 java后端,非常完整的一套交易所,UI前端做的也很漂亮,新增了交易跟单功能,前端pc+wap都是uniapp纯源码,前端源码node_modules环境已经安装好了,拿去直接编译就可以. 后端 前端 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共…

订餐点餐|订餐系统基于java的订餐点餐系统小程序设计与实现(源码+数据库+文档)

订餐点餐系统小程序 目录 基于java的订餐点餐系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布…

qt使用QDomDocument读写xml文件

在使用QDomDocument读写xml之前需要在工程文件添加&#xff1a; QT xml 1.生成xml文件 void createXml(QString xmlName) {QFile file(xmlName);if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))return false;QDomDocument doc;QDomProcessin…

隆道携手黑龙江省中小企业协会助力区域企业数字化转型

9月28日&#xff0c;隆道公司总裁吴树贵出席“2024年黑龙江省中小企业协会副会长扩大会议暨数字化转型专题报告会”并做主题发言&#xff0c;分享了龙江惠企商城建设情况和供应链数字化转型实践经验。会上&#xff0c;隆道公司与黑龙江省中小企业协会签订了战略合作协议&#x…

SOLIDWORKS 2025基于浏览器角色的新功能:如何简化设计流程?

在2025版本中&#xff0c;SOLIDWORKS引入了一系列基于浏览器角色的新功能&#xff0c;本文将深入探讨SOLIDWORKS 2025的这些新增功能&#xff0c;看看它们是如何帮助工程师简化工作流程、增强用户体验的。 SOLIDWORKS 2025 1从多方面定义工作流程 • 根据您的需求使用全新的…

ACM MM 2024中有哪些值得关注的Diffusion Models相关的论文?

Diffusion Models专栏文章汇总:入门与实战 前言:ACM MM 2024作为多模态领域的顶级会议,已经放出所有接受的论文。这次的MM又是Diffusion Models的盛会,非常多值得关注的最新论文,这篇博客将一一介绍。 COMD: Training-free Video Motion Transfer With Camera-Object Moti…

Redis哨兵模式的搭建以及配置参数简介

原理 Redis哨兵模式是一种用于在Redis主从复制环境中进行高可用性监控和故障恢复的机制。该模式引入了一个或多个哨兵节点&#xff0c;这些节点负责监控Redis服务器的状态&#xff0c;并在主节点发生故障时切换为新的主节点。 哨兵节点的工作原理如下&#xff1a; 1、哨兵节点…