
PCL
文章平均质量分 64
PCL相关的学习以及开发的资料专栏
非晚非晚
一往无前,不急不躁,生命不熄,折腾不止!
展开
-
pcl_viewer的使用小记
虽然有很多查看点云的方式,但是要说在linux系统下,最简单快捷的方式还得说是pcl_viewer,在此记录一下自己觉得还挺好用的几点pcl_viewer操作。 1. pcl_viewer安装2. 查看点云以及相应的快捷键3. 查看点云的坐标4. 启用xyz轴5. 一次打开多个pcd文件原创 2022-05-23 17:45:00 · 13300 阅读 · 5 评论 -
pcl中的一些常用函数记录笔记
1. 删除无效点(nan点)——pcl::removeNaNFromPointCloud2. 判断单个点是否是无效点——pcl::isFinite3. 求点的极值——pcl::getMinMax3D4. 点云与点云ptr类型互相转换5. 点云拷贝——pcl::copyPointCloud6. 点云的插入与删除——insert、push_back和erase7. 指定点云的颜色显示——PointCloudColorHandlerCustom8. PointCloud和PCLPointCloud2原创 2022-02-10 15:05:06 · 4444 阅读 · 0 评论 -
pcl中common模块函数功能介绍
pcl_common中主要是包含了PCL库常用的公共数据结构和方法,比如PointCloud的类和许多用于表示点,曲面,法向量,特征描述等点的类型,用于计算距离,均值以及协方差,角度转换以及几何变化的函数等。这个模块是不依赖其他模块的,所以是可以单独编译成功,单独编译出来可利用其中的数据结构自行开发。转载 2022-01-18 22:52:18 · 1569 阅读 · 0 评论 -
【点云处理技术之PCL】点云分割算法1——平面模型分割、圆柱模型分割和欧式聚类提取(含欧式聚类原理)
1. 平面分割2. 圆柱分割3. 欧式聚类分割下面的欧式聚类分割代码逻辑为:首先对原始点云做下采样,体素大小为0.01.然后采样点云做平面滤波,使用的是SAC_RANSAC平面滤波,直到总量小于原始的0.3倍之后才不做平面滤波,对平面滤波剩余的点云进行欧式距离分割。原创 2022-01-10 22:27:37 · 4603 阅读 · 6 评论 -
【点云处理技术之PCL】range image——提取深度图像的边界并可视化
有三种不同的边界:object borders:目标最外层的边界veil points:障碍物边界和阴影边界之间的插值点shadow border:与遮挡相邻的背景点三种边界的示意图如下:原创 2022-01-04 20:01:41 · 1240 阅读 · 12 评论 -
【点云处理技术之PCL】随机采样一致算法(Random sample consensus,RANSAC)
RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写,这个算法于1981年由Fischler and Bolles首次提出。它是一种迭代方法,用于从一组包含局内点Inliers和局外点outliers的数据中,通过迭代的方式估计出数学模型的参数。Inliers可以解释为适合模型参数的一组点,outliers则是不适合模型的点。它是一种不确定的算法——它有一定的概率得出一个合理的结果,为了提高概率必须提高迭代次数。原创 2021-12-23 19:21:42 · 4220 阅读 · 0 评论 -
【点云处理技术之PCL】range image——创建深度图像并可视化
深度图像(Depth Images)也被称为距离图像(Range Image),是指将从图像采集器到场景中各点的距离值作为像素值的图像,它直接反应了景物可见表面的几何形状,利用它可以很方便的解决3D目标描述中的许多问题,深度图像经过点云变换可以计算为点云数据,有规则及有必要信息的点云数据可以反算为深度图像数据。不同视角获得深度图像的过程如下:原创 2022-01-04 19:59:05 · 5032 阅读 · 0 评论 -
【点云处理技术之PCL】滤波器——参数化模型(投影点云,pcl::ProjectInliers)
参数化模型就是设定一个函数模型,将输入的点云投影至函数模型上,例如ax + by + cz + d = 0,从而达到点云过滤的形式(其实点云的大小并不会发生改变)。原创 2021-12-20 19:21:22 · 1133 阅读 · 0 评论 -
【点云处理技术之PCL】滤波器——提取索引的点云(pcl::ExtractIndices)
这一部分内容为提取索引内的点云。下面的例子借用了分割算法,分割后会产生点云子集的索引,然后使用点云提取技术,提取索引范围内的点云。原创 2021-12-21 19:47:48 · 2412 阅读 · 0 评论 -
【点云处理技术之PCL】滤波器——离群点滤波(statisticalOutlierRemoval、ConditionalRemoval 和RadiusOutlinerRemoval)
通常激光点云往往会伴随着一些噪声的存在,而这会使局部点云特征(如曲面法线或曲率变化)的估计变得复杂,从而导致错误的值,进而可能导致点云配准失败。StatisticalOutlierRemoval滤波器,是一种使用统计化的方法删除离群点的滤波器。这种滤波器对每个点的邻域进行统计分析,并对不符合统计结果的点进行删除,统计方法是根据数据的邻域距离进行分析出来的结果。对于每一个点都会计算它到邻域的平均距离,并假设所有的点满足高斯分布,计算出来的平均值如果不满足全局距离下的高斯分布,则对它进行修建。原创 2021-12-19 08:24:32 · 5869 阅读 · 0 评论 -
【点云处理技术之PCL】滤波器——体素滤波器(pcl::VoxelGrid)
体素滤波器是一种下采样的滤波器,它的作用是使用体素化方法减少点云数量,采用体素格中接近中心点的点替代体素内的所有点云,这种方法比直接使用中心点要慢,但是更加精确。这种方式即减少点云数据,并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用。原创 2021-12-18 21:42:03 · 10266 阅读 · 0 评论 -
【点云处理技术之PCL】滤波器——直通滤波器(pcl::PassThrough)
直通滤波器,是直接根据滤波器设定的条件,选择自己所需点云。可以选择保留设定范围内的点云,也可以选择滤除设定范围内的点云,保留或者滤出是由setFilterLimitsNegative进行模式开关的。原创 2021-12-18 21:41:48 · 2543 阅读 · 1 评论 -
【点云处理技术之PCL】PCL中的基本数据类型——PointCloud与PointT
pcl中有很多预定义的数据类型,这些类型应该足以支持PCL中实现的所有算法和方法,所以这节内容很重要,但是难度又不大,即使用户想要自定义数据类型,pcl中的数据类型也是大有帮助的。原创 2021-12-18 11:39:33 · 11810 阅读 · 0 评论 -
【点云处理技术之PCL】PCL添加PCD文件并显示以及曲线的显示方式
读取PCD文件和显示点云信息是PCL中的基本操作,这里介绍3种点云显示方式,单个PCD显示、多个PCD在同一个窗口显示和逐个显示多个PCD文件。在这里也会介绍其他的显示方法,比如plotter显示等。pcl_visualization库建立了能够快速建立原型的目的和可视化算法对三维点云数据操作的结果。类似于opencv的highgui例程显示二维图像,在屏幕上绘制基本的二维图形。原创 2021-06-04 17:01:38 · 2607 阅读 · 8 评论 -
【点云处理技术之PCL】点云配准算法之NDT
Normal Distributions Transform (NDT) 算法对于大型点云比较有效,它使用3D点云统计模型的标准最优化技术来确定两个点云可能的配准。原创 2021-06-04 14:00:43 · 3350 阅读 · 2 评论 -
【点云处理技术之PCL】点云配准算法之ICP系列
将从各个视角得到的点集合并到统一的坐标系下形成一个完整的点云,然后就可以方便进行可视化的操作,这就是点云数据的配准。最近点迭代算法,是最为经典的数据配准算法。其特征在于,通过求取源点云和目标点云之间的对应点对,基于对应点对构造旋转平移矩阵,并利用所求矩阵,将源点云变换到目标点云的坐标系下,估计变换后源点云与目标点云的误差函数,若误差函数值大于阀值,则迭代进行上述运算直到满足给定的误差要求.原创 2021-06-03 15:49:50 · 3486 阅读 · 5 评论 -
【点云处理技术之PCL】Octree
八叉树是一种用于描述三维空间的树状数据结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。原创 2021-05-27 09:58:35 · 1323 阅读 · 3 评论 -
【点云处理技术之PCL】KdTree搜索
KdTree(k-dimensional树的简称),是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构。 主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。原创 2021-05-24 13:00:00 · 1206 阅读 · 2 评论