PCL
文章平均质量分 50
手口一斤
这个作者很懒,什么都没留下…
展开
-
PCL点云开发资料汇总
对于博客内PCL开发资料进行汇总和整理,以便查看和管理,持续更新。点击超链接到达相应博文PCL配置和常见问题PCL1.11.1+vs2019开发环境配置PCL生成error C4996解决点云定义读取和可视化PCL点云读取、写入、生成和可视化PCL自定义点和点云使用PCL单个程序多幅点云显示PCL点云可视化PointXYZ,PointXYZRGBPCL点云深度图显示方法RangeImageVisualizerPCL常用函数解释和使用方法PCL点云滤波:去除离群原创 2021-02-23 15:09:30 · 237 阅读 · 0 评论 -
PCL点云配准:ICP使用
目录ICP流程分为4个主要步骤使用一点感受实现代码ICP流程分为4个主要步骤1、对原始点云数据进行采样,得到初始的点云集合;2、确定初始对应点集,模板点集在待匹配点集的位置,对结果有至关重要的影响;3、去除错误对应点对,通过最小二乘法迭代获取正确的匹配点;4、坐标变换求解,得到旋转矩阵R和平移矢量t;完成高精度的变换矩阵估计;使用一点感受初始点集合,非常非常非常之重要,对最后结果有至关重要的作用;迭代次数多了之后,或者点云大了之后,运算速度确实慢;是一种精原创 2021-01-15 14:18:01 · 368 阅读 · 0 评论 -
PCL点云姿态估计、刚性匹配SampleConsensusPrerejective
目录代码实现结果分析和使用感受点云刚性匹配,rigid objects匹配,假设模板是A点云,要在B点云中找到与A点云形状、大小都一致的点云集合;代码实现代码流程:1、读入点云数据2、对点云数据进行下采样3、求点云数据的法向量4、求点云数据的FPFH特征,其它特征也行6、进行匹配#include <Eigen/Core>#include <pcl/point_types.h>#include <pcl/point_cloud.h原创 2021-01-12 14:20:53 · 4036 阅读 · 4 评论 -
PCL求点云外接立方体:AABB(轴对齐)和OBB(带方向)MomentOfInertiaEstimation
本文主要展示一个样例,在PCL中求 AABB Axis-aligned bounding box轴对齐包围盒 和OBB Oriented bounding box 包围盒,从字面意思就能够理解意思;AABB有点像二维图像中的外接矩形,边与坐标轴是平行的,OBB像二维图像中的最小外接矩,能够比较好的包容整个点集。在实际使用过程中可以根据自己需求来进行计算,例如:可以用在测量点云的宽度、深度等等,来设置一些算法的参数;主要代码如下,具体说明看注释,足以。#include <vector>原创 2021-01-07 14:38:46 · 5057 阅读 · 0 评论 -
PCL求点云法向量与NormalEstimation的使用
目录原理说明适用场景和使用感受法向量求取实例原理说明核心是把局部点当作一个平面,利用平面的法向量与平行于平面的法向量乘机为零,来计算;法向量的方向是不确定的,可能朝平面上,也可能是朝平面下,因此,如果需要统一法向量的方向,需要设置视点,原理是求取法向量点为起点,以视点为终点形成的向量与法向量的乘积大于零,也就是夹角是锐角;适用场景和使用感受PCL中把法向量作为点云的一个特征来求,即归类为3Dfeature,因此也可以单独作为一个特征使用;在很多环节中都需要求点云的法向量,原创 2021-01-07 11:11:51 · 4163 阅读 · 4 评论 -
PCL八叉树使用说明以及getPointIndicesFromNewVoxels举例
目录原理八叉树建立过程,参考1中链接:PCL八叉树用途PCL八叉树用途举例知识点说明代码原理八叉树是一种基于树的数据结构,用于组织稀疏的三维数据。八叉树建立过程,参考1中链接:伪代码:(1). 设定最大递归深度(2). 找出场景的最大尺寸,并以此尺寸建立第一个立方体(3). 依序将单位元元素丢入能被包含且没有子节点的立方体(4). 若没有达到最大递归深度,就进行细分八等份,再将该立方体所装的单位元元素全部分担给八个子立方体(5). 若发现子立方体所分配到的单原创 2021-01-04 15:26:08 · 1099 阅读 · 0 评论 -
PCL点云转深度图、求深度图边界并显示
目录PCL点云转深度图、求深度图边界并显示代码运行结果理论说明和结果分析PCL中点云转换核心代码核心函数PCL中边缘检测核心代码核心函数PCL点云转深度图、求深度图边界并显示代码详细说明看注释#include <iostream>#include <pcl/range_image/range_image.h>#include <pcl/io/pcd_io.h>#include <pcl/visualizat.原创 2020-12-31 15:05:38 · 1577 阅读 · 3 评论 -
PCL点云深度图显示方法RangeImageVisualizer
PCL range image 显示方法 pcl::RangeImage rangeImage; pcl::visualization::RangeImageVisualizer range_image_widget("Range image"); range_image_widget.showRangeImage(rangeImage); while (!range_image_widget.wasStopped()) { range_...原创 2020-12-31 13:28:07 · 813 阅读 · 0 评论 -
PCL生成error C4996解决
错误描述1>\pcl\range_image\range_image.h(810,4): error C4996: 'pcl::PointCloud<pcl::PointWithRange>::mapping_': rewrite your code to avoid using this protected field (It will be removed in PCL 1.12)解决方法项目属性->C/C++->所有选项->SDL检查->否具体原创 2020-12-30 16:04:41 · 1398 阅读 · 2 评论 -
PCL自定义点和点云使用
目录自定义点云步骤自定义点云示例具体使用样例定义点步骤1、定义自己的点云结构2、注册这个点云结构3、在程序中合理使用(可能不能用viewer显示了,可以保存相应文件)自定义点示例//第一步:自定义点云结构struct MyPointType{ float x; float y; float z; float i; float ring; float time; //其它的值都可以} ;原创 2020-12-29 16:43:00 · 1668 阅读 · 1 评论 -
PCL单个程序多幅点云显示
在之前使用opencv的小伙伴们,也希望PCL像opencv那样,N个imshow()+Waitkey()来显示点云;PCL最简单的是通过以下方式来显示一幅点云:pcl::visualization::CloudViewer viewer("Cloud Viewer"); viewer.showCloud(cloud_filtered_show,"cloud filtered"); while (!viewer.wasStopped()) { }那么,如果想在一个...原创 2020-12-24 16:35:52 · 458 阅读 · 1 评论 -
PCL点云滤波:去除离群点StatisticalOutlierRemoval和适用场景
目录PCL去除离群点StatisticalOutlierRemoval使用方法和效果显示去除离群点StatisticalOutlierRemoval原理说明去除离群点StatisticalOutlierRemoval适用情况和使用感受PCL去除离群点StatisticalOutlierRemoval使用方法和效果显示所需点云资源见文章末尾的参考链接;程序写了去除离群点的基本操作方法,并且显示每一步的运行效果,在运行时关闭一个窗口后,再显示下一个点云窗口;算法本身主要参数:(1原创 2020-12-23 17:13:21 · 5665 阅读 · 5 评论 -
PCL点云滤波:体素网格法VoxelGrid和适用场景
目录PCL体素网格法VoxelGrid使用方法和点云效果显示体素网格法VoxelGrid原理说明适用场景和使用心得PCL体素网格法VoxelGrid使用方法和点云效果显示资源下载链接和参考教程在文章最后;程序中实现最基本的滤波功能和对一个点云多次滤波的实现;参数0.01f是1cm,调整后可以看效果;/*20201213 by 手口一斤*/#include <iostream>#include <pcl/io/pcd_io.h>#include原创 2020-12-23 13:41:27 · 2340 阅读 · 4 评论 -
PCL点云滤波:直通滤波PassThrough(简单卡阈值留点)和适用场景
目录PCL直通滤波使用和点云打印直通滤波的原理直通滤波的使用场景和使用体验CL直通滤波使用和点云打印除了对PCL直通滤波的常用基本功能实现,具体看注释。说明了多维度直通滤波的用法,即卡多个阈值得到点云结果,例如PointXYZ,对“x” “y” 三个值都需要卡阈值时的使用方法;/*20201022 by 手口一斤*/#include <iostream>#include <ctime>#include <pcl/point_types.h&g原创 2020-12-22 16:11:00 · 2637 阅读 · 1 评论 -
PCL1.11.1+vs2019开发环境配置
目录1、安装vs20192、安装PCL1.11.13、建立第一个PCL项目(1)包含目录(2)库目录(3)预处理器设置(4)附加依赖项(5)dll文件配置(6)平台工具集确认(6)跑一个例子确认安装成功5、附件(1)附加依赖项列表1、安装vs2019访问官网:https://visualstudio.microsoft.com/zh-hans/vs/下载community2019,下载下来文件名为:vs_community__72...原创 2020-12-02 14:47:07 · 2248 阅读 · 0 评论 -
PCL点云滤波:双边滤波BilateralFilter和适用场景
目录PCL双边滤波使用和结果显示双边滤波实际计算过程(定义)双边滤波适用场景和使用体验PCL双边滤波使用和结果显示先用最简单的例子来说明PCL双边滤波如何使用#include <pcl/point_types.h>#include <pcl/io/pcd_io.h>#include <pcl/kdtree/kdtree_flann.h>#include <pcl/filters/bilateral.h>#include <原创 2020-12-22 14:42:27 · 6184 阅读 · 17 评论 -
PCL点云可视化PointXYZ,PointXYZRGB
目录1.可视化PointXYZ2.可视化PointXYZ,每个点显示固定颜色2.可视化PointXYZRGB,每个点显示相应的颜色;1.可视化PointXYZboost::shared_ptr<pcl::visualization::PCLVisualizer> simpleVis(pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud){ boost::shared_ptr<pcl::visualizati..原创 2020-12-18 13:36:42 · 10055 阅读 · 0 评论 -
PCL点云读取、写入、生成和可视化
目录代码功能代码运行结果一个代码完成功能,不需要下载其它的点云文件数据,代码功能1.生成一个在正方体内的随机点云;2.将生成的点云保存为PCD文件;3.读取PCD文件得到点云;4.可视化点云;代码/*by : 手口一斤date : 2020-12-16*/#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#inc原创 2020-12-16 16:23:40 · 3718 阅读 · 8 评论