当前位置:首页 » 《休闲阅读》 » 正文

【PCL】Ubuntu22.04 安装 PCL 库

16 人参与  2024年10月27日 19:20  分类 : 《休闲阅读》  评论

点击全文阅读


文章目录

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

前言

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

一、更新系统软件包

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

sudo apt updatesudo 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-devsudo apt-get install cmake

三、下载 PCL 源码

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

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

四、编译和安装 PCL

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

cd pclmkdir releasecd releasecmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr\      -DCMAKE_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \      -DCMAKE_INSTALL_PREFIX=/usr ..makesudo 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 buildcmake ..make

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

? 个人简介:CSDN「博客新星」TOP 10 , C/C++ 领域新星创作者? 作    者:锡兰_CC ❣️? 专    栏:【OpenCV • c++】计算机视觉? 若有帮助,还请关注➕点赞➕收藏,不行的话我再努努力???

其他

更多专栏订阅推荐:

? 【开卷数据结构】? 【备战蓝桥,冲击省一】 ?   从零开始的 c++ 之旅 ? 【OpenCV • c++】计算机视觉

点击全文阅读


本文链接:http://zhangshiyu.com/post/178717.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1