
点云库PCL
人生体验
多体验人生
展开
-
特征描述子的理解(pfh,fpfh,short)
为什么要特征描述子?因为用点特征描述的(法线、曲率等)只能是用少部分的参数来代表一段几何区域,描述参数太少。所以通过参数化 查询点和领域点的空间差异 形成了特征描述子。PFH:该方法是使用 一对点 通过局部坐标系来建立对应的关系的(因为是一对点,所以具有一定的抗干扰性,比如抗旋转),但是对法线计算的准确性的依赖比较大。将(x,x,x)看作空间的点 ,最后做投票选择,最后在展开。(pcl 源码将f1,f2,f3归一化后放入直方图,好像还用到了哈希表存储。)这里注意的是它...原创 2020-07-24 13:45:22 · 3192 阅读 · 0 评论 -
点云的八叉树分析
关于八叉树和kd树,八叉树的更加适合点云。直观上看,八叉树更加贴合空间。八叉树有一个优势,就是它可以提前终止搜索,而kd树做不到,它要返回根节点去一节一节找。八叉树的构建思路:1.判断是否有根节点,如果没有创建一个根节点 将所有的点都放进去2.判断数据的大小,以及数据的边长(如果满足要求,就是叶子节点)3.将数据压入八叉数中4.递归调用以上的步骤八叉树的查找思路:如果是叶子节点并且空间内节点的数目是大于0的,那么遍历空间内的所有点,并放入到一个容器内部 如果不是那么就判断在原创 2020-07-19 15:42:55 · 1847 阅读 · 1 评论 -
cilantro(io的操作)
从例子ply_io.cpp看,pangolin这里主要还是读取.ply文件的。1.从文件路径读取 std::string fileInPath, fileOutPath; if (argc < 3) { std::cout << "No input path provided. Using default test cloud location....原创 2020-03-17 14:07:44 · 421 阅读 · 0 评论 -
cilantro(实现PCL的统计滤波)
代码如下:#include <cilantro/kd_tree.hpp>#include <cilantro/io.hpp>#include <iostream>#include <cilantro/visualizer.hpp>#include <cilantro/point_cloud.hpp>#include <...原创 2020-03-17 13:49:31 · 817 阅读 · 1 评论 -
cilantro使用
安装步骤 按照readme就可以了。由于它在make 的时候已经对所有的example编译了;我想自己写以下CMakeLists.txt,对其中一个kd_tree编写了;CMAKE_MINIMUM_REQUIRED(VERSION 3.5)PROJECT(test)#头文件的位置INCLUDE_DIRECTORIES(/home/xing/cilantro_ori/cilant...原创 2020-03-12 11:21:50 · 948 阅读 · 0 评论 -
pcl(有关统计滤波)
假设已经找到最近邻的点第一步:计算每个点到所有K邻域点的平均距离 //First pass: Compute the mean distances for all points with respect to their k nearest neighbors int valid_distances = 0; for (int iii = 0; iii < static_...原创 2020-03-08 15:06:02 · 798 阅读 · 1 评论 -
pcl(单独使用其中的某一块)
由于不想编译pcl,想着我也不是都用到了pcl,可不可以就是,只是用其中一部分。下面做一个尝试,实现kdtree.参考博主:https://blog.youkuaiyun.com/tiankong_/article/details/80857130...原创 2020-03-08 09:29:20 · 485 阅读 · 0 评论 -
Ubuntu18.04 编译pcl1.9
照着这个博主:https://blog.youkuaiyun.com/u014301278/article/details/102947451中间报错,在50%的时候出现了 targert "all"failed的问题。解决措施:https://blog.youkuaiyun.com/ljl1015ljl/article/details/100039052中间好像还有报错。。。还是报上面的错er�@�U...原创 2020-01-03 22:24:30 · 1550 阅读 · 0 评论 -
PCL(法线一个非常好的点云处理软件cloudcompare)
今天刚下载,感觉不错,后期想要学习一下!慢更新。原创 2019-12-01 14:54:13 · 2574 阅读 · 1 评论 -
PCL(凸包的使用)
https://blog.youkuaiyun.com/m0_37914211/article/details/102855498回看。原创 2019-12-01 14:35:29 · 1196 阅读 · 0 评论 -
PCL(常用api)
这个博客持续更新啦---------------------------------另外多参考这个博主的内容:https://www.cnblogs.com/flyinggod/p/9478000.html(写的很好啦)1.找到目标点云中x,y,z中得最值,以及对应得索引; subset1_maxz = cloud_subset1->points[0].z; subset...原创 2019-12-01 10:04:30 · 1511 阅读 · 0 评论 -
PCL(关键点+基于对应点分类的对象识别)
关键点的定义可以从二维图像中类推出来的,点云这里也是一样的,它通常是和特征描述子结合在一起的。叫做关键点描述子。关键描述子,可以简单的代表物体,后续可以加快识别和追踪。有这样几个关键点 基于深度图的narf点、基于点云的sifi特征点+harris关键点。pcl 程序就是简单调用api。最后对书中的例子进行主要的研究;例子名字:基于对应点分类的对象识别主要思路是:利用特征匹配得到场...原创 2019-11-23 17:28:09 · 1499 阅读 · 0 评论 -
PCL(基于点的目标匹配)
直接上代码/*下面是修改的代码*/#include <pcl/io/pcd_io.h>#include <pcl/point_cloud.h>#include <pcl/correspondence.h>#include <pcl/features/normal_3d_omp.h>#include <pcl/features/s...原创 2019-11-07 20:59:32 · 1657 阅读 · 1 评论 -
机器人无序抓取(点云)
最近实习的公司要做机器人无序抓取,这一块的内容。。。。。慌得一逼。。。目前 暂时不打算做深度学习,想暂时用传统得方式去实现。先假设一个简单得引用场景,相机下有 一大堆物体,其大小形状都是固定的+几个干扰物。目标是找到 固定物体 (暂时就是这样简单的目标)。主要用pcl去实现。。。。。。。有很多文章介绍这一块的内容1.传统的方式https://www.cnblo...原创 2019-11-05 20:50:44 · 6948 阅读 · 1 评论 -
向pcd文件写入点云数据
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>intmain(int argc,char**argv){pcl::PointCloud<pcl::PointXYZ> cloud;cloud.width=5;cloud.height...原创 2019-06-01 15:07:06 · 330 阅读 · 0 评论 -
kd-tree
kd-tree 简单理解为一种数据结构(所以点云数据处理中最为核心的问题就是建立离散点间的拓扑关系,实现基于邻域关系的快速查找。)k-d树 (k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。用来组织表示K维空间中点的几何,是一种带有其他约束的二分查找树,为了达到目的,通...原创 2019-06-01 15:07:37 · 1476 阅读 · 0 评论 -
八叉树学习(Being_young部分博客参考加上书的内容)
1.octree是一种用于管理稀疏3D数据的树形数据结构,每个内部节点都正好有八个子节点,介绍如何用octree在点云数据中进行空间划分及近邻搜索,实现“体素内近邻搜索(Neighbors within VOxel Search)”,"K近邻搜索(K Nearest Neighbor Search)","半径内近邻搜索"(Neighbors within Radius Search)K近邻搜索(K...原创 2019-06-01 15:06:20 · 427 阅读 · 0 评论 -
连接两个点云的字段或数据形成新点云
学习如何连接两个不同点云为一个点云,进行操作前要确保两个数据集中字段的类型相同和维度相等,同时了解如何连接两个不同点云的字段(例如颜色 法线)这种操作的强制约束条件是两个数据集中点的数目必须一样,例如:点云A是N个点XYZ点,点云B是N个点的RGB点,则连接两个字段形成点云C是N个点xyzrgb类型。#include <iostream>#include <pcl/io/...原创 2019-06-01 15:20:58 · 997 阅读 · 0 评论 -
6.3.3 无序点云数据集的空间变化检测
octree是一种管理稀疏3D数据的树状结构,利用octree实现多个无序点云之间的空间变化检测,这些点云可能在尺寸。分辨率 密度,和点顺序等方面有所差异,通过递归的比较octree的树结构,可以鉴定出由octree产生的体素组成的区别所代表的空间变化,还要学习关于octree的“双缓冲”技术,以便实时的探测多个点云之间的空间组成的差异。#include <pcl/point_clou...原创 2019-06-01 15:55:50 · 912 阅读 · 0 评论 -
可视化(简单调用可视化)
PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线、绘制多种形状和多个视口。本小节将通过示例代码演示PCLVisualizer可视化类的功能,从显示单个点云开始。大多数示例代码都是用于创建点云并可视化其某些特征。这边因为项目需要,这一块需要重点去做;在这里书中强...原创 2019-06-01 16:46:08 · 1800 阅读 · 9 评论 -
7.3.3 PCL Visualizer 可视化类
PCL可以显示法线,绘制多种形状和多个视口直接在代码中完成注释 个别函数单独去注释/* \author Geoffrey Biggs */#include <iostream>#include <boost/thread/thread.hpp> //代表线程的头文件#include <pcl/common/common_hea...原创 2019-06-01 20:16:56 · 542 阅读 · 0 评论 -
第8章 滤波
第一遍看这个书,只是简单的撸代码 ,往后会仔细探究其中原理为啥要滤波:(多读几遍)在获取点云数据时 ,由于设备精度,操作者经验环境因素带来的影响,以及电磁波的衍射特性,被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中讲不可避免的出现一些噪声。在点云处理流程中滤波处理作为预处理的第一步,对后续的影响比较大,只有在滤波预处理中将噪声点 ,离群点,孔洞,数据压缩等按照后续处理定制,才...原创 2019-06-04 13:52:53 · 421 阅读 · 0 评论 -
第9章 深度图像
什么是深度图像?(距离图像目前看来更好理解一点)深度图像(Depth Images)也被称为距离影像(Range Image),是指将从图像采集器到场景中各点的距离值作为像素值的图像,它直接反应了景物可见表面的几何形状,利用它可以很方便的解决3D目标描述中的许多问题,深度图像经过点云变换可以计算为点云数据,有规则及有必要信息的点云数据可以反算为深度图像数据。距离图像的获得原理?https:...原创 2019-06-10 21:03:40 · 649 阅读 · 0 评论 -
从pcd文件读取数据
由于项目需要,接触点云处理,做一下学习记录。#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>intmain(int argc,char** argv) // pcl 函数名的方式{pcl::PointCloud<pcl::PointX...原创 2019-06-01 15:07:54 · 2440 阅读 · 2 评论