PCL教程笔记
yhwang-hub
还是什么也不写吧
展开
-
PCL_PCA-最小包围盒(画出最小包围盒顶点)
1.包围盒简介 包围盒也叫外接最小矩形,是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。 常见的包围盒算法有AABB包围盒、包围球、方向包围盒OBB以及固定方向凸包FDH。碰撞检测问题在虚拟现实、计算机辅助设计与制造、游戏及机器人等领域有着广泛的应用,甚至成为关键技术。而包围盒算法是进行碰撞干涉初步检测的重要方法之一。在此借助于PCL点云库寻找点云的最小包围盒,代码参考网上代码,因为工程需要包围盒的顶点坐标或偏转角度,网上代码转载 2020-08-06 23:32:25 · 3410 阅读 · 0 评论 -
欧式聚类官方教程
Euclidean Cluster Extraction在本教程中,我们将学习如何使用pcl :: EuclideanClusterExtraction类提取欧几里得群集。 为了不使本教程复杂,此处将不解释其中的某些元素,例如平面分割算法。 请查看“平面模型细分”教程以获取更多信息。Theoretical Primer聚类方法需要将无组织的点云模型P划分为较小的部分,以便显着减少P的总处理时间。可以通过使用固定宽度的框(或更普遍地是八叉树数据结构)利用空间的3D网格细分来实现欧几里得意义上的简单数据聚原创 2020-08-06 13:37:59 · 2398 阅读 · 0 评论 -
详解PCL中点云配准技术
本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充。一、 PCL中点云配准技术的简单实现在同一文件夹下,有测试数据文件monkey.ply,该文件是利用Blender创建的默认Monkey模型。利用如下代码,将初始点云(图中绿色点云)进行旋转平移,得到目标点云(图中红色点云)。// 旋转矩阵的具体定义 (请参考 https://en.wikipedia.org/wiki/Rotation_matrix)double theta = M_PI / 20; // .原创 2020-07-27 20:09:31 · 4280 阅读 · 3 评论 -
3D点云配准(二多幅点云配准)
在上一篇文章 点云配准(一 两两配准)中我们介绍了两两点云之间的配准原理。本篇文章,我们主要介绍一下PCL中对于多幅点云连续配准的实现过程,重点请关注代码行的注释。对于多幅点云的配准,它的主要思想是对所有点云进行变换,使得都与第一个点云在统一坐标系中。在每个连贯的、有重叠的点云之间找到最佳的变换,并累积这些变换到全部的点云。能够进行ICP算法的点云需要进行粗略的预匹配,并且一个点云与另一个点云需要有重叠部分。此处我们以郭浩主编的《点云库PCL从入门到精通》提供的示例demo来介绍一下多幅点云进行配准的原创 2020-07-27 19:58:13 · 1317 阅读 · 0 评论 -
点云配准(一 两两配准)
1 )什么是点云的配准呢?为了得到被测物体的完整数据模型,需要确定一个合适的坐标变换,将从各个视角得到的点集合并到一个统一的坐标系下,形成一个完整的数据点云,然后就可以方便地进行可视化等操作,这便是点云数据的配准.2 ) 配准有哪些方式呢?常见的点云手段有①手动配准②依赖仪器的配准③自动配准通常意义上的配准技术,即是指自动配准技术.3)点云自动配准技术的方法是什么呢?这主要是通过一定的算法或者统计学规律,利用计算机计算两块点云之间的错位,从而达到把两片点云自动配准的效果.其实质是把在不同的原创 2020-07-27 19:45:59 · 1990 阅读 · 0 评论 -
PCL点云特征描述与提取
3D点云特征描述与提取是点云信息处理中最基础也是最关键的一部分,点云的识别。分割,重采样,配准曲面重建等处理大部分算法,都严重依赖特征描述与提取的结果。从尺度上来分,一般分为局部特征的描述和全局特征的描述,例如局部的法线等几何形状特征的描述,全局的拓朴特征的描述,都属于3D点云特征描述与提取的范畴,特征描述与提取相关的概念与算法1.3D形状内容描述子(3D shape contexts)利用描述子建立曲面间的对应点在3D物体识别领域有广发的应用,采用一个向量描述曲面上指定点及邻域的形状特征,通过匹配向原创 2020-07-24 13:32:15 · 1663 阅读 · 0 评论 -
kd-tree和八叉树的概念及相关算法
点云数据主要是,表征目标表面的海量点集合,并不具备传统实体网格数据的几何拓扑结构。点云数据处理中最为核心的问题就是,建立离散点间的拓扑关系,实现基于邻域关系的快速查找。1. K维树(KD-tree)1.1 KD-tree 概念简介KD-tree 又称 K 维树,是计算机科学中使用的一种数据结构,用来组织表示 K 维空间中点集合。它是一种带有其他约束条件的二分查找树。KD-tree对于区间和近邻搜索十分有用。我们为了达到目的,通常只在三个维度中进行处理,因此所有的 KD-tree 都将是三维 KD-t原创 2020-07-14 11:20:40 · 5212 阅读 · 0 评论 -
ROS、PCL点云滤波模块整理
前言点云滤波模块常见的模块包括:Pass Through直通滤波、VoxelGrid过滤、StatisticalOutlierRemoval过滤、点云投影、提取索引等;今天介绍前三种过滤模块:直通滤波、体素滤波、统计滤波。直通滤波:快速过滤掉用户自定义区间范围内的点云体素滤波:在分割、配准前,如果点云数量太多会影响后续时间。此时,需要对点云进行下采样处理,体素滤波为采用体素网格方法采样,减少点云数量。统计滤波:统计滤波往往去除离群点,利用统计分析技术删除噪声异常值等。下面对原始点云分别进行三种滤波原创 2020-06-04 18:18:37 · 2590 阅读 · 1 评论 -
ROS-读取pcd点云数据进行滤波并在Rviz中显示
环境:Ubuntu16.04ROS KineticC++创建工作空间:cd Downloads/ROSmkdir -p PointCloudFilter_ws/srccd PointCloudFilter_ws/srccatkin_init_workspacecd ..catkin_make将该工作空间的setup文件路径放到Home路径下的.bashrc文件中:创建功能包 cd src catkin_create_pkg pointcloudfilter_pkg pcl_co原创 2020-05-29 00:58:41 · 2410 阅读 · 0 评论 -
ROS-PCL读取pcd点云数据并在rviz中进行显示
环境:Ubuntu16.04ROS kineticC++创建工作空间和功能包cd Downloads/ROSmkdir -p pcdreadshow_ws/srccd srccatkin_init_workspacecatkin_create_pkg read_pcd pcl_conversions pcl_ros roscpp sensor_msgs进入到功能包的src文件夹下面新建.cpp文件read_pcd.cpp#include<ros/ros.h>#inclu原创 2020-05-28 00:22:31 · 1959 阅读 · 0 评论 -
ROS-创建点云数据并在Rviz中显示
环境:Ubuntu16.04ROS kineticC++1.新建ROS工作空间mkdir -p PointCloundShow_ws/srccd PointCloundShow_ws/srccatkin_init_workspacecd ..catkin_make 将工作空间下的setup.bash文件路径添加到Home路径下的.bashrc文件中:这样就不用每次都source一下了.2.创建功能包cd srccatkin_create_pkg pointcloundshow原创 2020-05-27 22:53:17 · 2146 阅读 · 1 评论 -
PCLVisualizer可视化类
PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线、绘制多种形状和多个视口。本小节将通过示例代码演示PCLVisualizer可视化类的功能,从显示单个点云开始。大多数示例代码都是用于创建点云并可视化其某些特征。代码首先,在PCL(Point Cloud Learning)中国协助发行的书提供光盘的第7章例3文件夹中,打开名为pcl_visualizer_demo.cpp的代原创 2020-05-25 17:28:13 · 629 阅读 · 0 评论 -
点云视窗类CloudViewer
点云视窗类CloudViewer是简单显示点云的可视化工具类,可以让用户用尽可能少的代码查看点云。注意:点云视窗类不能应用于多线程应用程序中。简单点云可视化如果用户想用几行代码可视化程序中所对应的地物,可以使用下面的代码:#include <pcl/visualization/cloud_viewer.h>//...voidfoo () { pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud;//... 为cloud添加对应原创 2020-05-26 00:34:37 · 823 阅读 · 0 评论 -
PCL已有点类型介绍和增加自定义的点类型
本小节不仅解释如何增加你自己的PointT点类型,也介绍了PCL中的模板point类型,以及它们的用处和定义。PCL从开始就伴随着各种预定义的point类型,从用于XYZ数据到更复杂的n维直方图表示法,例如PFH(点特征直方图)。这些类型应该足够支持在PCL中应用的算法及方法,然而,也有情况下用户希望定义新的类型。注意:由于PCL的快速更新,本节内容仅仅对PCL 0.x和1.x版本兼容,撰写本文档的时候预期在PCL 2.X中会有新的改变,但大的架构不变,只是添加些新定义的描述子等点类型之类的。为什么用P原创 2020-05-26 10:58:54 · 1396 阅读 · 1 评论