【PCL库+ubuntu+C++】1. 点云界的hello world!

PCL基本介绍

本篇的环境对应ubuntu20.04, 语言采用C++.对于安装,比较简单一笔带过了.用的是源码安装方式,但是在安装PCL之前,要记得先安装一些它的依赖或者是需要用到的库,比如VTK等.

推荐学习方式

PCL的官网有一整套对于PCL库的介绍和教程.很全,作者在这里就以领进门的方式为大家简单介绍.详见PCL官网.

  • 一般来说,点云包含.ply和.pcd两种格式.还有在我们Kitii数据集中的二进制格式

工具安装

查看点云文件可以通过pcl_tools组件中的pcl_view来实现.
安装

sudo apt-get install pcl_tools

详细用法在上述PCL官网也有.主要有通过命令行指定颜色,像素大小等

  • 通过如下代码就可查看
pcl_viewer xxx.pcd 

PCL简单的代码

命名为pcd_write.cpp.
主要实现功能: 运行后,生成一个我们自定义的pcd点云,可以通过viewer来查看

pcd_write.cpp源码

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

int main ()
{
  pcl::PointCloud<pcl::PointXYZ> cloud;

  // Fill in the cloud data
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;
  cloud.resize (cloud.width * cloud.height);

  for (auto& point: cloud)
  {
    point.x = 1024 * rand () / (RAND_MAX + 1.0f);
    point.y = 1024 * rand () / (RAND_MAX + 1.0f);
    point.z = 1024 * rand () / (RAND_MAX + 1.0f);
  }

  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
  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;

  return (0);
}

CMakeLists.txt

同上源码一个目录

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)

project(pcd_write)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (pcd_write pcd_write.cpp)
target_link_libraries (pcd_write ${PCL_LIBRARIES})

运行查看

mkdir build
cd build
cmake ..      #编译
make ..       
./pcd_write   #运行

make完毕会在统计目录下看到可执行文件pcd_write(无后缀产生),运行完毕,会生成一个点云pcd格式的文件.

pcl_viewer test_pcd.pcd

通过pcl_viewer查看,效果如下(你需要特别用心才能看到我们刚才生成的5个点,或者通过pcl_viewer命令行参数将其像素设置大一点):请添加图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值