【PCL】Ubuntu22.04 安装 PCL 库

前言

  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

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

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

其他

更多专栏订阅推荐:

<think>我们正在为Ubuntu20.04虚拟机安装PCL(PointCloudLibrary)。根据引用内容,安装PCL需要先安装各种依赖,然后安装PCL本身。引用[1]提供了安装依赖的命令,引用[2]和[3]则涉及安装VTK(一个PCL的依赖)的步骤。由于PCL1.8.1需要VTK7.1.1(引用[2]),我们将按照这些步骤进行。步骤概述:1.安装PCL的依赖2.安装VTK(版本7.1.1)3.下载并编译安装PCL(版本1.8.1)详细步骤:第一步:安装PCL的依赖根据引用[1],执行以下命令:```sudoapt-getupdatesudoapt-getinstallgitbuild-essentiallinux-libc-devsudoapt-getinstallcmakecmake-guisudoapt-getinstalllibusb-1.0-0-devlibusb-devlibudev-devsudoapt-getinstallmpi-default-devopenmpi-binopenmpi-commonsudoapt-getinstalllibflann1.9libflann-dev#注意:Ubuntu20.04对应libflann1.9sudoapt-getinstalllibeigen3-devsudoapt-getinstalllibboost-all-devsudoapt-getinstalllibqhull*libgtest-devsudoapt-getinstallfreeglut3-devpkg-configsudoapt-getinstalllibxmu-devlibxi-devsudoapt-getinstallmono-completesudoapt-getinstalllibopenni-devsudoapt-getinstalllibopenni2-dev```第二步:安装VTK(版本7.1.1)根据引用[2]和[3],需要先安装VTK的依赖,然后编译安装VTK。1.安装VTK的依赖:```sudoapt-getinstalllibx11-devlibxext-devlibxtst-devlibxrender-devlibxmu-devlibxmuu-devsudoapt-getinstallbuild-essentiallibgl1-mesa-devlibglu1-mesa-dev#cmake和cmake-gui在第一步已经安装,无需重复```2.下载VTK7.1.1:从VTK官网下载地址(引用[2]中提供的链接)下载VTK7.1.1。注意:引用[2]中提供的链接可能需要用户自行访问,但引用中并没有直接给出URL。我们可以从VTK的发布页面(https://vtk.org/download/)找到历史版本。这里我们直接使用7.1.1版本。我们可以使用wget下载:```wgethttps://www.vtk.org/files/release/7.1/VTK-7.1.1.tar.gz```3.解压并编译安装VTK:```tar-xzfVTK-7.1.1.tar.gzcdVTK-7.1.1mkdirbuildcdbuildcmake..make-j4#根据虚拟机配置调整线程数sudomakeinstall```注意:VTK的安装过程可能需要一些时间。第三步:安装PCL1.8.11.下载PCL1.8.1源码:我们可以从PCL的GitHub发布页面(https://github.com/PointCloudLibrary/pcl/releases)下载pcl-1.8.1.tar.gz。使用wget:```wgethttps://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.1.tar.gz```或者,如果链接有变,请到官方网站查找。如果上述链接不可用,可以尝试:```wgethttps://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.8.1.tar.gz```2.解压并编译安装:```tar-xzfpcl-1.8.1.tar.gzcdpcl-pcl-1.8.1mkdirbuildcdbuildcmake-DCMAKE_BUILD_TYPE=Release..make-j4sudomakeinstall```注意:在编译PCL时,可能会因为VTK的路径问题而找不到VTK。如果出现这种情况,可以在cmake时指定VTK的路径,例如:```cmake-DCMAKE_BUILD_TYPE=Release-DVTK_DIR=/usr/local/lib/cmake/vtk-7.1..```安装完成后,可以编写一个简单的PCL程序测试是否安装成功。测试程序(例如test_pcl.cpp):```cpp#include<pcl/point_types.h>#include<pcl/io/pcd_io.h>#include<iostream>intmain(){pcl::PointCloud<pcl::PointXYZ>cloud;cloud.width=5;cloud.height=1;cloud.is_dense=false;cloud.points.resize(cloud.width*cloud.height);for(size_ti=0;i<cloud.points.size();++i){cloud.points[i].x=1024*rand()/(RAND_MAX+1.0f);cloud.points[i].y=1024*rand()/(RAND_MAX+1.0f);cloud.points[i].z=1024*rand()/(RAND_MAX+1.0f);}pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);std::cerr<<"Saved"<<cloud.points.size()<<"datapointstotest_pcd.pcd."<<std::endl;return0;}```编译测试程序(假设保存为test_pcl.cpp):```g++test_pcl.cpp-otest_pcl-I/usr/local/include/pcl-1.8-I/usr/include/eigen3-I/usr/include/vtk-7.1-L/usr/local/lib-lpcl_common-lpcl_io```运行:```./test_pcl```如果成功生成test_pcd.pcd文件,则安装成功。注意事项:1.在虚拟机中安装,确保有足够的磁盘空间(编译过程需要大量空间)。2.如果内存较小,编译时可能会因内存不足而失败,可以尝试减少make的线程数(如make-j2)。3.如果遇到依赖问题,请根据错误提示安装相应的依赖。以上步骤综合了引用[1][2][3]的内容,并进行了适当调整以适合在Ubuntu20.04安装PCL1.8.1。相关问题:1.Ubuntu20.04安装PCL时如何解决常见的依赖问题?2.如何验证PCL是否安装成功?3.除了从源码编译,还有其他方法在Ubuntu安装PCL吗?</think>### 在Ubuntu 20.04虚拟机中安装PCL的完整指南 #### 步骤1:安装系统依赖 ```bash sudo apt-get update sudo apt-get install git build-essential linux-libc-dev cmake cmake-gui sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev sudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo apt-get install libflann1.9 libflann-dev libeigen3-dev libboost-all-dev sudo apt-get install libqhull* libgtest-dev freeglut3-dev pkg-config sudo apt-get install libxmu-dev libxi-dev mono-complete sudo apt-get install libopenni-dev libopenni2-dev ``` > 注:这些依赖包含编译器、3D处理和I/O设备支持[^1] #### 步骤2:安装VTK 7.1.1(PCL必需组件) 1. 下载VTK 7.1.1: ```bash wget https://www.vtk.org/files/release/7.1/VTK-7.1.1.tar.gz tar -xzf VTK-7.1.1.tar.gz ``` 2. 安装VTK依赖: ```bash sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev sudo apt-get install libxmu-dev libxmuu-dev build-essential sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev ``` 3. 编译安装VTK: ```bash cd VTK-7.1.1 mkdir build && cd build cmake -DVTK_USE_X:BOOL=ON -DVTK_OPENGL_HAS_OSMESA:BOOL=OFF .. make -j$(nproc) sudo make install ``` > 编译过程可能需要15-30分钟(取决于虚拟机配置)[^2][^3] #### 步骤3:安装PCL 1.8.1 1. 下载PCL源码: ```bash wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.1.tar.gz tar -xzf pcl-1.8.1.tar.gz ``` 2. 编译安装: ```bash cd pcl-pcl-1.8.1 mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc) sudo make install ``` #### 步骤4:配置环境变量 ```bash echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc ``` #### 验证安装 创建测试文件`test_pcl.cpp`: ```cpp #include <pcl/point_types.h> #include <iostream> int main() { pcl::PointXYZ point; point.x = 1.0; point.y = 2.0; point.z = 3.0; std::cout << "PCL安装成功! 测试点坐标: " << point.x << ", " << point.y << ", " << point.z << std::endl; return 0; } ``` 编译并运行: ```bash g++ test_pcl.cpp -o test_pcl -I/usr/local/include/pcl-1.8 -L/usr/local/lib -lpcl_common ./test_pcl ``` 成功输出:`PCL安装成功! 测试点坐标: 1, 2, 3` #### 虚拟机特别注意事项 1. **共享文件夹**:避免在共享文件夹中编译,建议在`~/`目录操作 2. **3D加速**:在VMware设置中启用: ``` 虚拟机设置 > 显示器 > 加速3D图形 ``` 3. **资源分配**: - 至少分配4GB RAM - 交换空间建议8GB - 磁盘空间≥20GB ### 常见问题解决 1. **OpenNI报错**: ```bash sudo ln -s /usr/lib/libOpenNI2.so /usr/lib/libOpenNI2.so.0 ``` 2. **VTK找不到**: 在CMake中添加参数: ```bash -DVTK_DIR=/usr/local/lib/cmake/vtk-7.1 ``` 3. **内存不足**: 编辑交换文件: ```bash sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` > 提示:完整编译过程在4核CPU/8GB RAM虚拟机约需1小时[^3]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡兰_CC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值