pcl
jiaojialulu
邮箱jiaojialulu@sina.com
展开
-
使用libfreenect2库编译运行点云获取程序libfreenect2pclgrabber
介绍libfreenect2pclgrabber是一个通过freenect2和pcl获取点云数据的程序,可以支持多台kinect2同时采集数据。源码下载github上的地址:https://github.com/giacomodabisias/libfreenect2pclgrabber安装正确安装libfreenect2 使用libfreenect2:我们只用其install下的文件 修改环原创 2016-09-16 22:31:29 · 3368 阅读 · 6 评论 -
(十二)OcTree教程四--OcTree在PCL中的应用-点云压缩
点云压缩点云带有大量的数据,不仅包括三维信息,还有额外的距离,颜色,法向量等等。此外,点云可以快速生成,这会占有大量的内存资源。一旦点云必须被存储或者用于通信传输,对于点云的压缩技术就显得十分重要了。PCL提供了点云压缩功能,它支持对各种类型点云的压缩,其中包括无序点云,此外,在八叉树结构下的数据支持高效地合并多个来自不同数据源的点云。 下面我们将一个点云进行压缩,压缩的结果是一个String翻译 2017-04-05 21:02:04 · 7091 阅读 · 4 评论 -
(十四)Visualization教程二
PCLPlotter类PCLPlotter类提供了一个十分直接简单的接口,通过它可以绘制各种图表,从多项式曲线图到直方图,从而不必要在使用MATLAB等软件来绘图了。我们下面就先从简单地画一个多项式曲线开始,逐步学习PCLPlotter类。画一个多项式曲线图步骤定义一个绘图器// 定义一个绘图器pcl::visualization::PCLPlotter * plotter = new pcl翻译 2017-04-05 21:03:43 · 2365 阅读 · 3 评论 -
(十三)Visualization教程一
CloudViewer如果你只是想简单的显示一幅点云,那么CloudViewer会是一个不错的选择。 注意CloudViewer类不能用在多线程实例头文件#include <pcl/visualization/cloud_viewer.h>程序pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud;//... populate cloudpcl::visu翻译 2017-04-05 21:03:24 · 5894 阅读 · 1 评论 -
(十一)OcTree教程三--OcTree在PCL中的应用-无序点云在空间中的动态检测
无序点云在空间中的动态检测在这篇教程中我们会学到如何用八叉树实现对多幅无序点云在空间变化上的检测。这里说的空间变化包括了点云的大小,分辨率,密度和点序。通过递归得比较八叉树的树结构,空间上的变化会从体素的配置参数上看出来。此外,我们解释了如何使用pcl八叉树的“双缓冲(double buffering)”技术来让我们高效地每次处理多幅点云。步骤对无序点云在空间变化上的检测,其实是对前后两幅点云在八叉翻译 2017-04-05 21:02:52 · 4699 阅读 · 0 评论 -
(十)OcTree教程二--OcTree在PCL中的应用-空间划分和近邻搜索
OcTree在PCL中的应用八叉树作为三维空间中点的重要数据结构在PCL中有很多应用,下面就分别从空间划分、近邻搜索、点云压缩和空间变化检测几个方面来介绍。空间划分和近邻搜索八叉树是将空间平均得分为8个部分,每个节点就是一个部分,我们假设三维空间是一个正立方体,每个节点就是一个小立方体。划分到最后,一个叶子结点代表一个最小的空间范围,我们称之为体素。八叉树的建立过程也就是空间划分的过程。 基于八叉翻译 2017-04-05 21:01:32 · 8103 阅读 · 3 评论 -
(九)OcTree教程一--OcTree原理介绍
OcTree原理介绍八叉树是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。八叉树是四叉树在三维空间上的扩展,二维上我们有四个象限,而三维上,我们有8个卦限。八叉树主要用于空间划分和最近邻搜索。 八叉树建立过程伪代码: (1). 设定最大递归深度 (2). 找出场景的最大尺寸,并以此尺寸翻译 2017-04-05 21:00:57 · 14726 阅读 · 0 评论 -
(八)k-dTree库教程二--k-d树在PCL中的应用
k-d树在PCL中的应用上一讲中,我们介绍了k-d树在二维上的原理,k-d树构建算法和k-d树是如何应用于最近邻查找算法的。对于PCL中的k-d树来说,只不过是将二维提升到了三维而已。下面我们就看看PCL是如何将k-d树应用于范围搜索和最近邻搜索的。 PCL中使用的k-d树的算法来自FLANN(Fast Library for Approximate Nearest Neighbors),它是目翻译 2017-04-05 21:00:00 · 4038 阅读 · 1 评论 -
(七)k-dTree库教程一--k-d树原理介绍
PCD文件操作本篇文章中会介绍对PCD文件的读写操作,点云的合并操作类型1. 读操作头文件:#include <pcl/io/pcd_io.h>关键函数:从硬盘加载一个PCD格式的模板点云template<typename PointT> inline int loadPCDFile (const std::string &file_name, pcl::PointCloud<PointT>翻译 2017-04-05 20:57:59 · 4009 阅读 · 0 评论 -
(六)IO库教程二--PCD文件操作
PCD文件操作本篇文章中会介绍对PCD文件的读写操作,点云的合并操作类型1. 读操作头文件:#include <pcl/io/pcd_io.h>关键函数:从硬盘加载一个PCD格式的模板点云template<typename PointT> inline int loadPCDFile (const std::string &file_name, pcl::PointCloud<PointT>翻译 2017-04-05 20:55:12 · 3464 阅读 · 0 评论 -
(五)IO库教程一--PCD(Point Cloud Data)文件格式
PCL中的3D特征PCD(Point Cloud Data)文件格式本文讲解了PCD(Point Cloud Data)的文件格式,还有在PCL中对它的用法PCD出现的背景PCD文件格式的出现,是为了弥补其他文件格式在PCL处理N维点云中的各种问题。 PCD不是第一种支持3D点云数据的格式: - PLY - 一种多边形文件格式 - STL - CAD软件得到的格式 - OBJ - 从几何学上翻译 2017-04-05 20:53:15 · 2781 阅读 · 0 评论 -
(四)利用矩阵对点云进行刚体变换
利用矩阵对点云进行刚体变换在这篇教程中,我们会学习如何用一个4*4的矩阵对点云进行变换。我们会加载一个点云,然后对其进行刚体变换(旋转加平移),最后显示结果。 程序/* * 功能: 点云刚体变换 * 头文件: #include <pcl/common/transforms.h> * 功能函数: pcl::transformPointCloud(*pPointCloudIn, *pPointC翻译 2017-04-05 20:51:54 · 6943 阅读 · 3 评论 -
(三)PCL中点的类型
PCL中点的类型使用PointT类型的原因最早,PCL的PointT是作为ROS中的一个库被开发出来的。大家一致认为点云(Point Cloud)是一个复杂的n维结构,能表示不同的类型的信息。然而,对于用户来说,为了使代码易于调试,便于优化等,应该知道什么样的信息需要被传递。 下面用对XYZ数据的简单操作来举例。对于支持SSE的处理器来说,最高效的方式就是将XYZ这三维数据以float的形式存储,翻译 2017-04-05 20:49:21 · 6012 阅读 · 1 评论 -
(二)PCL基本数据类型
PointCloud在PCL 1.x中最基本的数据类型就是PointCloud了。它是一个C++类,包含了如下的数据成员(括号中是这个数据的数据类型): - width(int) ==指定了点云数据中的宽度==。width有两层含义: - 可以指定点云的数量,但是只是对于无序点云而言。 - 指定有序点云中,一行点云的数量。 有序点云(organized point cloud )翻译 2017-04-05 20:48:19 · 6449 阅读 · 2 评论 -
PCL-1.7.2-AllInOne-msvc2013-win64+VS2013安装
什么是PCLPCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获原创 2016-05-14 09:51:49 · 4745 阅读 · 2 评论 -
PCL学习笔记
PCL的结构和内容:PCL完全是一个模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、QHull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。 - Boost:用于共享指针和线程; - Eigen:用于矩阵、向量等数据操作; - FLANN:用于在KD树模块中快速近邻搜索; - VTK:原创 2016-09-16 22:56:19 · 4494 阅读 · 0 评论 -
(一)PCL总览
基本上都是官网上的东西翻译了一下,因为自己用的比较多,就当是学习和记录了。概述PCL被分成了许多模块化的库,下面是其中最重要的模块: 下面对各个模块进行介绍:滤波器(Filters)背景下图展示了一个去噪的例子。由于测量的误差,一些数据表现为背景点(shadow points)。这让获取点云的3D特征变得困难。其中的一些外点(outliers)可以通过对每个点的邻域进行静态分析判断出来,并将它翻译 2017-04-05 20:46:26 · 3295 阅读 · 1 评论