简介
本篇博文主要介绍如何将点云投影到参数模型(例如:平面、球体等)。参数模型会通过一组系数给出,例如平面方程 a x + b y + c z + d = 0 ax+by+cz+d=0 ax+by+cz+d=0。为什么要进行投影,用途之一就是当前的三维卷积计算量太大且发展不是特别成熟。点云投影到二维平面能够借助图像算法进行处理。当然会损失一些点云信息,如果多个维度进行投影,能够将损失的信息降低到比较低的水平。目前点云投影应用最多的一种投影方式就是生成俯视图。
代码Demo
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/ModelCoefficients.h>
#include <pcl/filters/project_inliers.h>
int main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZI>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZI>);
pcl::PointCloud<pcl::PointXYZI>::Ptr cloud_bev (new pcl::PointCloud<pcl::PointXYZI>);
// Fill in the cloud data
pcl::PCDReader reader;
reader.read("16line.pcd", *cloud);
std::cout << "PointCloud before filtering has: " << cloud->points.size(