讲一下我所理解的PCL点云库中的坐标系统。
引言
世上本没有坐标系,用的人多了,便定义了坐标系统用来定位。地理坐标系统用于定位地球上的位置,PCL点云库可视化窗口中的坐标系统用于定位其三维世界中的位置。
本人刚开始接触学习PCL点云库,计算机图形学基础为零,以下内容基于自己的理解,如有错误,欢迎指出。
正文
首先介绍一下PCL点云库visualization模块中的PCLVisualizer类,它是PCL可视化3D点云的主要类,该类具有更全面的功能,如显示法线、绘制多种形状和多个视口等,其内部实现了添加各种3D对象以及交互实现等。
其中addCoordinateSystem()函数可以在可视化窗口中的坐标原点(0,0,0)处添加一个红绿蓝三色的三维指示坐标轴,红色是X轴,绿色是Y轴,蓝色是Z,也就是说PCL点云库中使用的是右手三维坐标系。
代码
#include <iostream>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
#include <pcl/visualization/pcl_visualizer.h>
int main(int argc, char** argv)
{
//显示类
pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
//添加坐标系
viewer.addCoordinateSystem();
//让可视化视窗停住,否则一闪而过。
while (!viewer.wasStopped())
{
viewer.spinOnce();
}
return (0);
}
参考
【1】[朱德海、郭浩、苏伟.点云库PCL学习教程(ISBN 978-7-5124-0954-5)北京航空航天出版]
【2】关于三维坐标系基本概念的一些另类理解