pcl
文章平均质量分 65
xinxiangwangzhi_
这个作者很懒,什么都没留下…
展开
-
pcl分割模块汇总
文章目录1算法汇总1.1 渐进式形态学滤波1.2欧式条件聚类1.3超体素/图/超体素+图方法1.4有序点云分割1.5欧式聚类(官方示例)1.6欧式标签聚类1.7区域增长1.8几何模型分割(官方示例)1.9点云差异获取1.10二元分类1.11DON分割(官方示例)1.12获取2d多边形内的点云1算法汇总1.1 渐进式形态学滤波经典的地面滤波方法,经常与布料滤波相提并论。progressive_morphological_filter.happroximate_progressive_morpholo原创 2022-04-06 09:29:59 · 4044 阅读 · 0 评论 -
pcl配准模块总结
按照pcl说明配准分为以下几个步骤:配准步骤:1寻找关键点(keypoint)2计算关键点的特征3估计特征的对应关系(1)对于直接使用坐标值的点间配准,一般使用kdtree查找对应关系(2)对于使用特征的配准,除了kdtree搜索外还可以使用直接估计,或者“Reciprocal” correspondence estimation。Direct correspondence estimation (default) searches for correspondences in cloud .原创 2022-01-05 18:07:32 · 4791 阅读 · 1 评论 -
pcl滤波模块架构解析与算法汇总
1pcl滤波模块组成以pcl::Filter为基类,衍生出各种滤波算法派生类,结构如下图所示:原创 2021-06-30 21:30:17 · 1374 阅读 · 2 评论 -
点云配准--4PCS原理与应用
点云配准原创 2022-06-19 21:47:54 · 4990 阅读 · 0 评论 -
点云配准--gicp原理与其在pcl中的使用
在概率模型中假设存在配准中两个点集, A^={ai^}\hat{A}=\left\{\hat{a_{i}}\right\}A^={ai^} and B^={bi^}\hat{B}=\left\{\hat{b_{i}}\right\}B^={bi^},并且假设 AAA and BBB 分别服从 ai∼N(ai^,CiA)a_{i} \sim \mathcal{N}\left(\hat{a_{i}}, C_{i}^{A}\right)ai∼N(ai^,CiA)and bi∼N(b^i,CiB)b原创 2022-06-11 17:44:28 · 9893 阅读 · 5 评论 -
NDT配准原理
文章目录NDT预备知识正态分布高斯牛顿法求解非线性最小二乘NDT原理(1)目标函数(2)简化目标函数(3)数值求解(4)算法流程:(5)相比ICP的优势NDT源码解析与其在PCL应用参考资料NDT预备知识正态分布n维正态随机过程中,其概率密度函数为:p(x⃗)=1(2π)D/2∣Σ∣exp(−(x⃗−μ⃗)TΣ−1(x⃗−μ⃗)2)(1)p(\vec{x})=\frac{1}{(2 \pi)^{D / 2} \sqrt{|\boldsymbol{\Sigma}|}} \exp \left(-\f原创 2022-05-29 14:18:47 · 2308 阅读 · 1 评论 -
DON(Difference of Normals)分割
分割主要思想:对选取不同半径近邻,计算一个点的法线。这样会得到同一个点,对应两个法线,根据这两个法线的差异,判断这个点是不是分割的内点。该方法能分割一些规则的物体,例如平面,球面等。PCL官方文档是利用pcl::PointNormal的curvature的属性(field)构建一个条件滤波,从而完成don分割。pcl::PointNormal类型的field,共包括x,y,z,normal_x,normal_y,normal_z,curvature,7个字段。当然don分割也可以使用其他field 例如n翻译 2022-03-21 15:43:03 · 904 阅读 · 0 评论 -
利用flann进行点云近邻搜索
有时间为了近邻搜索而引入pcl库是不必要的,pcl底层kdtree近邻搜索依赖于flann库,因此不使用pcl而单独使用flann进行近邻搜索是简洁可行的。下面是单独使用flann进行近邻搜索,并且与pcl近邻搜索对比的代码:// flann使用.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h&原创 2022-02-18 14:01:58 · 1478 阅读 · 0 评论 -
寻找两个点云重叠部分
目录方法1:方法1实验效果:方法2:方法2实验效果:结论:网上大部分寻找重叠区域都是对一个点云建立kdtree,然后在r半径内搜索另外一个点云的点。这种方法适合两个点云完全一样。一般的点云数据并不完全一样,例如两条航带的点云,并不完全相同,如果应用这方法会损失很多点,造成特征计算的不准确性。下面介绍两种方法:写在前面的结论:第二种方法速度和精度上均优于第一种方法(octree yyds!!!)方法1:(1)假设有两组点云A,B,计算A的OBB包围盒(2)寻找点云A的OBB包围盒内的点云B,这样就得原创 2022-01-16 00:25:47 · 8579 阅读 · 39 评论 -
alpha-shape计算二维点云边界--c++实现
alpha-shape原理看过很久了,今天花点时间实现一下:原理参考:博客平面点云边界提取算法研究[D].长沙理工大学,2017.《综合机载与车载LiDAR数据的建筑物三维重建》注意:个人原创,转载注明出处,如果感觉有帮助,点个赞,有疑问,欢迎留言交流。show the codes:// ashape.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include<pcl\common\common.h>#include <iostream原创 2022-01-14 21:12:09 · 2924 阅读 · 2 评论 -
基于法线的点云双边滤波
双边滤波具有一定的保留边缘特征的功能,本质上是一种平滑算法,算法原理:具体参考文献《The Bilateral Filter for Point Clouds》作者:Julie Digne, Carlo de Franchis代码:#include <iostream>#include<cmath>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/kdtre原创 2021-11-16 14:53:50 · 5318 阅读 · 21 评论 -
点云引导滤波算法实现
引导滤波假设点云经过一个线性变换,具有很好的保留边缘信息功能。参考文献:韩先锋博士学位论文《三维点云去噪处理及特征描述的研究》伪代码:代码是这样的#include <iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/point_types.h>#include<pcl/kdtree/kdtree_flann.h>using poin原创 2021-11-13 10:49:10 · 3318 阅读 · 4 评论 -
八叉树体素遍历近邻体素搜索
网上基本上没有关于pcl 八叉树如何寻找相邻体素问题,这个问题也困扰了我很久。网上基本上都是查找某一体素内的近邻点云,而非查找相邻的体素。一个偶然的机会get到了这个技能,特此分享一下。说明:pcl中octreekey保存了该体素在xyz方向上的索引号,因此可以根据这一特点进行相邻体素查找。pcl是这样说明的:Octree keys contain integer indices for each coordinate axis in order to address an octree leaf nod原创 2021-09-02 20:31:35 · 2445 阅读 · 0 评论 -
pcl源码解读与实践--pca
在pcl/common自带pca计算,其主要功能包括计算特征值、特征向量、投影、reconstruction。特征值特征向量计算,放在initCompute ()函数中,pca核心代码,源码如下:template<typename PointT> boolpcl::PCA<PointT>::initCompute () { if(!Base::initCompute ()) { PCL_THROW_EXCEPTION (InitFailedException,原创 2021-06-25 20:49:59 · 2609 阅读 · 2 评论 -
点云DBSCAN聚类C++实现
1我懒得说原理了,dbscan和欧式聚类原理很接近,不过具备抗噪能力,可以参考硕士论文《基于 DBSCAN 聚类算法的研究》和《针对非均匀密度环境的DBSCAN自适应聚类算法的研究》。2特别注意的是:dbscan认为密度可达的点即为一个簇,这也是dbscan聚类的核心思想。根据密度可达的定义,在聚类过程中,除了第一个和最后一个点之外(可以为核心对象或者边界对象),其余点必须是核心对象才可以。3对照欧式聚类,参考了代码,改写了点云dbscan算法。show the codes// 依赖项:pcl原创 2021-06-25 10:53:27 · 4572 阅读 · 8 评论 -
最小二乘求解点云平面方程及其对应法向量
csdn对latex语法支持不完整啊,太不友好了,那我只好上图片了。原创 2021-06-15 18:04:04 · 2139 阅读 · 3 评论 -
点云分割-kmeans-原理+代码
kmeans做为无监督学习的一种聚类方法,原理非常简单,本质上是根据重心(密度中心)不断进行迭代的一个分割方法。其主要步骤为:(1)初始化k个中心点(2)计算所有点到中心点的欧氏距离,形成集合dist(3)找到dist最小值所在的索引i,将点加入第i个簇(4)重新计算簇的所有中心,重复2-3直到中心点不变或者达到最大迭代次数。具体的数学原理可以参考知乎show the codes语言:C++依赖库:PCL1.9.1//Kmeans.h#pragma once#include &l原创 2021-03-31 11:16:17 · 2818 阅读 · 4 评论 -
pcl自定义点云类型与kdtree搜索
一直都想着pcd包含索引就好了,在多次对原始点云进行筛选(滤波,分割)后更方便根据索引寻找点云,算是以空间换时间。根据pcl自定义点云类型,实现kdtree搜索。show the codes#include "pch.h"#include <iostream>#include<pcl/io/pcd_io.h>#include<pcl/point_cloud.h>#include<pcl/point_types.h>#include<pcl/原创 2021-01-03 10:41:35 · 1148 阅读 · 0 评论 -
pcl八叉树(octree)搜索与kdtree搜索耗时比较
待更新原创 2020-12-19 10:46:11 · 3795 阅读 · 2 评论 -
PCL中kdtree心得
1pclkdtree搜索的两种方式//第一种方式pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);//第二种方式pcl::search::KdTree<pcl::PointXYZ> ::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);2两种方式近邻搜索结果相同:近邻搜索结果都包含查询点,近邻索原创 2020-11-20 22:15:01 · 1024 阅读 · 3 评论 -
PCL1.9.1+VS2017+Win10配置的注意事项
写在前面的注意事项:1、openni2的安装路径,最好直接安装到pcla安装路径下的3dParty-openni2中。2、解压“pcl-1.9.0-pdb-msvc2017-win64.zip”,将解压得到的文件夹中的内容添加到你的PCL安装目录-pcl\bin文件夹中。3、设置环境变量以及配置属性时要注意安装路径、注意3dparty中的依赖库的版本,如boost、vtk等,另外别遗漏3dparty动态链接库(惨痛教训)4、debug模式和release模式在附加依赖项时的区别5、配置完属性表尽量原创 2020-07-18 15:09:13 · 371 阅读 · 0 评论 -
pcl滤波简介
pcl中总结了几种需要进行点云滤波处理的情况,分别如下:(1)点云密度不规则需要平滑,点云密度不规则容易造成某些算法的局部最优(2)因为遮挡等问题造成离群点需要去除(3)大量数据需要[下采样],相当于一种压缩方法(https://baike.baidu.com/item/下采样/754538?fr=aladdin)(4)噪声数据需要去除对应的方法如下:(1)按具体给定的规则限制过滤去除...转载 2019-04-19 22:10:06 · 390 阅读 · 0 评论 -
pcl中窗口点云可视化的几种情况
pcl中visualization模块中常用于点云可视化的两个class:1.class pcl::visualization::Cloudviewer(功能简单)2.class pcl::visualization::PCLVisualizer(成员函数非常多,内容很丰富,为点云可视化中最重要的class)点云可视化的情况可分为以下情况:情况1.简单地显示单一点云代...原创 2019-04-21 16:36:18 · 4776 阅读 · 0 评论 -
pcl中特征描述子
https://www.cnblogs.com/li-yao7758258/p/9350340.html转载 2019-05-13 08:55:56 · 795 阅读 · 0 评论 -
八叉树基本知识
链接1、212注意:Octrees 与 k-d 树不一样: k-d 树沿着一个维度分裂, 八叉树围绕一个点分裂转载 2019-04-15 09:32:53 · 1222 阅读 · 0 评论