PCL点云库--点云的基本变换

一:基本结构
PCL点云库的基本数据类型为PointCloud pcl::PointCloud。PointCloud是C++类,其中包含以下的数据字段:
(1) pcl:’width pcl::PointCloud::width’ (数据类型int)

用点的数量来表示点云数据集的宽度。宽度width有两个含义:
    (a)如果是无组织的点云数据集,它可以指定点云中的总数。
    (b)也可以指定有组织的点云数据集一行的总点数
Note:有组织的点云数据集---赋予了类似于一个有组织的图像(或矩阵)状的结构的点云数据集。其中,数据被划分为行和列。
    这种数据集有可能来自于立体摄像机或飞行时间摄像机获得的数据。
    有组织的数据集的优点在于,通过相邻点之间的关系,最临近操作的操作更加有效,从而加快了计算速度并且降低了PCL中某些算法的成本。
    Note:可投影点云---指根据针孔相机模型,在有组织的点云中点的(u,v)索引与实际3D值之间具有相关性。这种相关性可以以最简单的方法表示为
     u = f*x/z 和 v = f*y/z 。

(2) pcl:’height pcl::PointCloud::height’ (数据类型int)

用点的数量来表示点云数据集的高度。高度height有两个含义:
    (a)如果是无组织的点云数据集,将其置为1,可以标明数据集是否已经被组织。
    (b)也可以指定有组织的点云数据集的总行数(高度)

(3) pcl:’points pcl::PointCloud’ (数据类型 std::vector)

储存所有PointT类型的所有点的向量数组。例如:对于包含XYZ数据的点云,points包含pcl::PointXYZ所有元素的向量。

(4) pcl:’is_dense pcl::PointCloud::is_dense’ (数据类型 bool)

指定点云所有数据是否都是有限的(是则为ture),或者某些点的XYZ值有可能包含Inf(下确界)/NaN值(未定值或不可表示的值)(是则为false)

(5) pcl:’sensor_origin_pcl::PointCloud::sensor_origin_’ (数据类型 Eigen::Vector4f)

指定传感器采集的姿势(固定/平移)。该变量通常是可选的,并且在PCL中的大多数算法中都不使用。

(6) pcl:’sensor_orientation_pcl::PointCloud::sensor_orientation_’ (数据类型 Eigen::Quaternionf)

指定传感器采集姿势(方法)。该变量成员通常是可选的,并且在PCL中的大多数算法都不使用。

为了简化开发,PointCloudpcl::PointCloud类包含许多帮助程序成员函数。例如,用户不必检查代 码中的height是否为1就可以查看数据集是否是组织好的,而可以使用 pcl:’PointCloud pcl::PointCloud::isOrganized’。

所述的PointT类型是主点数据类型,并且描述了每个单独点的类型。PCL中有许多点类型。
想要查看更多的点类型,见PCL–点的类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_cloud.h>
#include <pcl/console/parse.h>
#include <pcl/common/transforms.h> // 点云坐标变换
#include <pcl/visualization/pcl_visualizer.h>


void pointUsages(){
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
cloud->width=640;//设定点云的宽度
cloud->height=480;//只要height!=1,则点云就是有组织的结构,则点的总数=height*width

cloud->width=307200; //对于无组织的点云数据,宽度就是点云中点的总数
cloud->height=1; //无组织的点云数据

pcl::PointCloud<pcl::PointXYZ> cloud1;
//std::vector<pcl::PointXYZ> data=cloud1.points;

}

感谢您的阅读。 🙏 关于转载请看这里