
PCL学习笔记
文章平均质量分 63
看到我请叫我学C++
这个作者很懒,什么都没留下…
展开
-
PCL学习笔记(三十八)-- 点云分割概念
一、聚类分割算法 在聚类方法中,每个点都与一个特征向量相关联,特征向量又包含了若干个几何或者辐射度量值。然后,在特征空间中通过聚类的方法(如K-mean法、最大似然方法和模糊聚类法)分割点云数据。聚类分割的基本原理为:考察m个数据点,在m维空间内,定义点与点之间某种性质的亲疏聚类,设m个数据点组成n类,然后将具有最小距离的两类何为一类,并重新计算类与类之间的距离,迭代直到任意两类之间的距离大于指定的阈值,或者类的个数小于指定的数目,完成分割。二、基于随机采样一致性的分割 ...原创 2021-08-19 16:17:12 · 807 阅读 · 0 评论 -
点云处理学习笔记(十)-- 3D触手可及:PCL
一、简介 对于在复杂环境下工作的机器人而言,它们需要能够感知这个世界。在过去的20年里,我们已经走过了很长的一段路:从声纳上的几个简单的距离传感器或是只能提供几个字节的环境信息的红外传感器,到深度相机与激光扫描器。在过去的几年间,诸如用于DARPA的城市挑战赛的Velodyne激光旋转雷达和用在PR2上的倾斜激光雷达,为我们提供了非常多高质量的三维环境信息描述--点云。不幸的是这些系统都太过昂贵,超出了许多机器人项目的预算。 但是,最近3D传感器的出现改变了这一局面。例如...翻译 2021-08-18 16:54:15 · 1166 阅读 · 0 评论 -
PCL学习笔记(三十七)-- 点云配准
一、PCL中实现的配准算法及相关概念 1 一对点云配准 我们称一对点云数据集的配准问题为两两配准(pairwise registration)。通常通过应用一个估计得到的表示平移和旋转的4 x 4刚体变换矩阵来使一个点云数据集精确地与另一个点云数据集(目标数据集)进行完美配准。 具体实现步骤如下: 1)首先从两个数据集中按照同样的关键点选取标准,提取关键点。 2)对选择的所有关键点分别计算其特征描述子。 ...原创 2021-08-18 16:52:52 · 1833 阅读 · 0 评论 -
PCL学习笔记(三十六)-- 点云滤波
在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,以及电磁波衍射特性、被测物体表面性质变化和数据拼接配准过程的影响,点云数据中将不可避免地出现一些噪声点。 实际应用中,出来这些测量随机误差产生的噪声点之外,由于收到外界干扰如视线遮挡、障碍物等因素的影响,点云数据中往往存在着一些离主体点云(即被测物体点云)较远 的离散点,即离群点,不同的获取设备点云噪声结构也有不同,其他可以通过滤波重采样完成的工作,有空洞修复、信息损失最小海量点云数据压缩处理等。 ...原创 2021-08-18 14:26:00 · 696 阅读 · 0 评论 -
PCL求助(一)-- 指针释放
在编写PCL相关程序时遇到了一个很奇怪的问题,希望能得到大佬的指点! 以一个简单的参数化模型投影点云为例://包含相应的头文件#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/ModelCoefficients.h>#include <pcl/filters/project_inli...原创 2021-08-12 16:26:31 · 3672 阅读 · 45 评论 -
PCL学习笔记(三十五)-- 头文件依赖关系导致报错
今天在调试PCL程序时遇到了一个奇怪的问题:#include <pcl/visualization/cloud_viewer.h>#include <iostream>#include <pcl/io/io.h>#include <pcl/io/pcd_io.h>int user_data;void viewerOneOff(pcl::visualization::PCLVisualizer& viewer){...原创 2021-08-11 15:13:19 · 1834 阅读 · 5 评论 -
PCL学习笔记(三十四)-- 无序点云的快速三角化
一、简介 使用贪婪三角化算法对有向点云进行三角化处理,具体方法是先将有向点云投影到某一局部二维坐标平面内,再在坐标平面内进行平面内的三角化,最后根据平面内三位点的拓扑连接关系获得一个三角化网格曲面模型。 贪婪投影三角化算法原理是处理一系列可以使网格“生长扩大”的点(边缘点),延伸这些点直到所有符合几何正确性和拓扑正确性的点都被连接上。该算法的优点是可以处理来自一个或多个扫描仪扫描得到并且有多个连接处的散乱点云。但该算法也有一定的局限性,更适用于采样点云来自于表面连续光滑的曲面并且点云密度...原创 2021-07-30 14:44:42 · 2007 阅读 · 0 评论 -
PCL学习笔记(三十三)-- 在平面模型上构建凸(凹)多边形
一、简介 在平面模型上构建凸(凹)多边形,首先从点云中提取平面模型,在通过该估计的平面模型系数从滤波后的点云投影一组点集形成点云,最后为投影后的点云计算其对应的二维凸(凹多边形)。二、代码分析 1)构建直通滤波器,对点云进行滤波处理,提高后续的分割的效果,然后打印相关信息输出到标准输出设备上: reader.read ("table_scene_mug_stereo_textured.pcd", *cloud);//读取点云数据 // Build a filter to ...原创 2021-07-30 11:19:25 · 1827 阅读 · 4 评论 -
PCL学习笔记(三十二)-- 基于多项式平滑点云及法线估计的曲面重建
一、简介 在测量较小的对象时会产生以西而误差,这些误差所造成的不规则数据如果直接拿来进行曲面重建的话会使重建的曲面不光滑或者而有漏洞。这些不规则很难用统计分析消除,所以为了建立完整的模型必须对表面进行平滑处理和漏洞修复。在不能进行额外扫描的情况下,可以通过对数据重采样来解决这一问题,重采样算法通过对周围数据点进行高阶多项式插值来重建表面缺少的部分。此外,由多个扫描点扫描结果配准后得到的数据直接拿来曲面重建的话会产生“双墙”等人造伪数据,即某块区域会出现重叠的两个曲面。重采样算法也可以对这个问题进行..原创 2021-07-30 09:34:19 · 1600 阅读 · 0 评论 -
PCL学习笔记(三十一)-- 基于超体素的点云分割
一、简介 超像素分割算法是将图像中的像素分割成符合目标物体边界的语义区域。基于图的算法,比如之所以MRF和CRF变得流行起来了,是因为该方法可以较好地融合高层语义只是和底层图像特征,消除高计算量的像素级图操作,而是转向中等级推理框架,该框架并不直接处理像素,而是使用像素群体,该像素群体被称作超像素。利用过分割的小区域,通过局部低层特征形成超像素。注意这里的像素和点云中的点对应,区别在于,点云一般是无序的,而像素都是有序的,不过都可以理解为对空间的一种离散采样表示。二、代码分析 1)输...原创 2021-07-29 16:50:05 · 6434 阅读 · 3 评论 -
PCL学习笔记(三十)-- 基于法线微分的分割
一、简介 根据不同尺度下法向量特征的差异性,利用类pcl::DifferenceOfNormalEstimation实现点云分割,该方法基于尺度的分割方法,可以根据给定尺度分割出对应尺度下的点云。基于Dof的多尺度分割方法计算效率高,可处理规模庞大的3D点云。该算法在概念上虽然非常简单,但在处理有较大尺度变化的场景点云分割时却异常有效。对输入点云P的每一个点p,利用不同的半径r1 > rs去估算同一点的两个单位法向量。利用输入点云的单位法向量的差定义DoN特征。通常DoN定义如下:...原创 2021-07-29 15:52:26 · 2086 阅读 · 2 评论 -
PCL学习笔记(二十九)-- 基于最小图割的分割算法
一、简介 基于最小图割的分割算法,通过设置目标物体的半径,三维坐标重心等参数,该算法将输入点云集合,划分为两个点集,前景点集(目标物体)和背景点云(剩余部分)。该算法思想如下: 1)构造图:首先定义源点和汇点两个顶点,对于输入点云,以每个点为图的顶点,途中的每个顶点与源点和汇点相连形成边,对应上述的t-links。另外,每个顶点(除了源点和汇点)与其临近点相连,对应上述n-links。 2)根据连接点的类型不同,边被分为以下三种情况,不同情况下,边被赋予不同的权值: ...原创 2021-07-29 14:28:13 · 1649 阅读 · 4 评论 -
PCL学习笔记(二十八)-- PCL编译问题汇总
1 VoxelGrid滤波器 在给出的示例程序中经常会出现以下报错:sensor_msgs::PointCloud2::Ptr cloud_blob (new sensor_msgs::PointCloud2), cloud_filtered_blob (new sensor_msgs::PointCloud2); 提示:没有sensor_msgs。原因是因为这段程序是用在ROS下的,在win下编译自然会出错,同样出错的还会有转换为模板点云代码: pcl::fromRO...原创 2021-07-29 13:19:32 · 1495 阅读 · 3 评论 -
PCL学习笔记(二十七)-- 基于颜色的区域生长分割
一、简介 该算法与区域生长算法一样,是基于同一策略之上的,其基本思想可参考区域生长算法相关章节。与区域生长算法相比,该算法主要有两个不同之处。第一,该算法用颜色测试代替了法线测试。第二,利用合并算法来控制过分割或欠分割。分割过程中,若两个相邻聚类的平均颜色相差较少,则将这两个聚类合并。然后进行第二步合并,在此步骤中,检查每一个聚类所包含的点的数量,如果这个数量小于用户定义的值,则当前这个聚类与其最近邻聚类合并在一起。二、代码分析 1)首先,从磁盘中读取点云数据,输入的点云数据必须带有...原创 2021-07-29 09:10:38 · 2246 阅读 · 1 评论 -
PCL学习笔记(二十六)-- 基于区域生长的分割
一、简介 区域生长分割算法的输出是一个聚类集合,每个聚类集合被认为是同一光滑表面的一部分。该算法思想:首先依据点的曲率值对点进行排序,之所以排序,是因为区域生长算法是从曲率最小的点开始生长的,这个点就是初始种子点,初始种子点所在的区域即为最平滑的区域,一般场景中平面区域较大,这样从最平滑的区域开始生长可减少分割区域的总数,提高效率。 算法的流程:设置一空的种子点序列和空的聚类数组,选好初始种子点后,将其加入到种子点序列中,并搜索邻域点。对每一个邻域点,比较邻域点的法线与当前种子点的法线之...原创 2021-07-28 16:31:56 · 2331 阅读 · 13 评论 -
PCL学习笔记(二十五)-- 圆柱体模型分割
一、简介 采用随机采样一致性估计从带有噪声的点云中提取一个圆柱体模型,程序的整体流程如下: (1)过滤掉远于1.5米的数据点; (2)估计每个点的表面法线; (3)分割出平面模型并进行保存; (4)分割出圆柱体模型并进行保存。二、代码分析 1)定义在代码中所使用的对象与数据对象,读取相应的点云数据: // All the objects needed //定义在程序中使用到的对象 pcl::PCDReader reader; ...原创 2021-07-28 14:12:29 · 2216 阅读 · 1 评论 -
PCL学习笔记(二十四)-- PCL实现平面模型分割
一、简介 PCL中Segementation库提供了点云分割的基础数据结构和部分通用的分割算法,目前实现的算法主要是基于聚类分割思想和基于随机采样一致性的分割算法,这些算法适用于将由多个空间分布独立的区域组成的点云分割成格子独立的点云子集,或者提取出特定的模型的点云数据,以便后续处理。二、代码分析 1)创建点云数据然后再屏幕上打印这些点的坐标值,为了达到本教程的目的,在数据中手动添加几个局外点,并设置它们的z值不为1,即不在z = 1所在的平面上的点作为局外点,在z = 1平面上的点...原创 2021-07-28 11:27:29 · 2394 阅读 · 0 评论 -
PCL学习笔记(二十三)-- 交互式迭代最近点配准
一、简介 在完成初始配准的情况下,一般采用ICP算法进行精细配准,标准的ICP配准算法是对源点云中的每个点,在目标点云中采用穷尽式凑所方法搜索距离最近的点作为对应点。然后求出配准对其所有对应点对的变换矩阵,最后将源点云数据通过该矩阵进行变换。算法一般设计一种或多种收敛规则,重复迭代地进行上述操作知道设计的收敛规则条件满足。如果不考虑测量误差,ICP算法的精度收到测量采样密度的影响,误差值正比于平均采样距离,即采样密度越高,拼合的精度也就越高。二、代码分析 1)为了进行测试,首先创建一...原创 2021-07-28 10:42:39 · 1305 阅读 · 0 评论 -
PCL学习笔记(二十二)-- 逐步匹配多幅点云
一、简介 逐步匹配多幅点云其思想时对所有点云进行变换,使得斗鱼第一个点云在同一坐标系中。在每个连贯的有重叠的点云之间找到最佳的变换,并累积这些变换到全部的点云。能够进行ICP算法的点云需要粗略的与匹配,并且一个点云与另一个点云需要有重叠部分。二、代码分析 1)首先,需要定义相关的头文件:#include <boost/make_shared.hpp> //boost指针相关头文件#include <pcl/point_types....原创 2021-07-28 09:21:34 · 1695 阅读 · 22 评论 -
PCL学习笔记(二十一)-- 迭代最近点算法
一、简介 ICP算法对待拼接的2片点云,首先根据一定的准则确立对应点集P与Q,其中对应点对的个数为n。然后通过最小二乘法迭代计算最优的坐标变化,即旋转矩阵R和平移矢量t,使得误差函数最小。ICP算法计算简便直观且可使拼接具有较好的精度,但是算法的运行速度以及向全局最优的收敛性却在很大程度上依赖于给定的初始变换估计以及在迭代过程中对应关系的确立。各种粗拼接技术可以为ICP算法提供较好的初始位置,所以迭代过程中确立正确对应点集以避免迭代陷入局部极值成为各种改进算法的关键,决定了算法的收敛速度与最终的拼..原创 2021-07-27 17:13:07 · 1095 阅读 · 0 评论 -
PCL学习笔记(二十)-- 随机采样一致性模型
一、简介 PCL中Sample_consense库实现了随机采样一致性及其繁华估计算法,以及例如平面、柱面等各种常见几何模型,用不同的估计算法和不同的几何模型自由结合估算点云中隐含的具体几何模型的系数,实现对点云中所处的几何模型的分割。线、平面、柱面和球面等模型已经在PCL库中实现,平面模型经常被应用到常见的室内平面分割提取中,比如墙、地板、桌面,其他模型常被应用到根据几何结构检测识别和分割物体中。二、代码分析 1)首先对两个点云进行定义初始化,并对其中一个点云填充点云数据,作为处理...原创 2021-07-27 15:56:33 · 1360 阅读 · 8 评论 -
PCL学习笔记(十九)-- CropHull任意多边形内部点云提取
一、简介 CropHull滤波器可以得到2D封闭多边形内部或者外部的点云。二、代码分析 1)首先,为了构造2D封闭多边形,需要输入2D平面点云,这些平面点是2D封闭多边形的顶点,接下来通过PCDReader类输入滤波对象点云: pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>); pcl::PCDReader reader; reader.read("p..原创 2021-07-26 13:57:35 · 3051 阅读 · 0 评论 -
PCL学习笔记(十八)-- ConditionalRemoval和RadiusOutliersRemoval滤波器移除离群点
一、简介 RadiusOutlierRemoval滤波处理会滤除那些一定范围内没有足够多近邻的点; ConditionalRemoval滤波器用于删除不符合用户要求的一个或多个数据点。二、代码分析 1)首先,程序会确保用户输入正确的命令行参数,并随机生成一个点云数据: if (argc != 2) { std::cerr << "please specify command line arg '-r' or '-c'" << std::end...原创 2021-07-26 13:20:44 · 1064 阅读 · 1 评论 -
PCL学习笔记(十七)-- ExtractIndices滤波器分割子集
一、简介 利用ExtractIndices滤波器,可以提取出点云中的子集。二、代码分析 1)首先,需要对所用到的点云格式进行转换: pcl::PCLPointCloud2::Ptr cloud_blob(new pcl::PCLPointCloud2), cloud_filtered_blob(new pcl::PCLPointCloud2); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered(new pcl..原创 2021-07-26 11:00:30 · 2035 阅读 · 5 评论 -
PCL学习笔记(十六)-- 使用参数化模型投影点云
一、简介 本小节将学习如何将点投影到一个参数化模型(例如平面或球等)。参数化模型通过一组参数来设定,对于平面来说,使用其等式形式 ax + by + cz + d = 0,在PCL中有特意存储常见模型系数的数据结构。二、代码分析 1)首先声明了ModelCoeffcients结构和ProjectInliers滤波器对应头文件。#include <pcl/ModelCoefficients.h>//模型系数定义头文件#include <pcl/filters/proj..原创 2021-07-26 09:42:22 · 2641 阅读 · 2 评论 -
PCL学习笔记(十五)-- StatisticalOutlierRemoval滤波器移除离群点
一、简介 激光扫描通常会产生密度不均匀的点云数据集。另外,测量中的误差会产生稀疏的离群点,使效果更糟。估计局部点云特征(例如采样点出的法向量或者曲率变化率)的运算很复杂,这会导致错误的数值,反过来有可能导致点云的配准等后期处理失败。 以下方法可以解决其中部分问题:对每个点的邻域进行一个统计分析,并修剪掉那些不符合一定标准的点。我们的稀疏离群点一处方法基于输入数据中对点到临近点的距离分布的计算。对每个点,我们计算它到它的所有临近点的平均距离。假设得到的结果是一个高斯分布,其形状由均值和标准差决定,..原创 2021-07-26 09:06:02 · 1015 阅读 · 4 评论 -
PCL学习笔记(十四)-- VoxelGrid滤波器实现下采样
一、简介 使用体素化网格方式实现下采样,即减少点的数量,减少点云数据,并同时保持点云的形状特征,在提高配准、曲面重建、形状识别等算法速度中非常实用。PCL实现的VoxelGrid类通过输入的点云数据创建一个三维体素栅格(可把体素栅格想象为微小的空间三维立方体的集合),然后在每个体素(即三维立方体)内,用体素中所有点的重心来近似显示体素中的其他店,这样体素内所有点就用一个重心点最终表示。对于所有体素处理后得到过滤的点云,这种方法比用体素中心来逼近的方法更慢,但它对于采样点对应曲面的表示更为准确。二、.原创 2021-07-23 17:17:39 · 1594 阅读 · 0 评论 -
PCL学习笔记(十三)-- 直通滤波器
一、简介 直通滤波器可以对指定的维度进行一个简单的滤波,即去掉用户指定范围内部(或外部)的点。二、代码分析 在下列代码中,我们利用随机数生成了点云,作为滤波的输入点云数据,并将其打印到标准输出://填入点云数据 cloud->width = 5; cloud->height = 1; cloud->points.resize (cloud->width * cloud->height); for (size_t i = 0; i <..原创 2021-07-23 16:23:23 · 1487 阅读 · 2 评论 -
PCL学习笔记(十二)-- PCL Visualizer可视化类
一、简介 PCL Visualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCL Visualizer使用起来更加复杂,但该类具有更全面的功能,如显示法线、绘制多种形状和多个视口。下面的示例代码演示了PCL Visualizer可视化的功能,从显示单个点云开始。大多数示例代码都用于创建点云并可视化其某些特征。二、代码分析 1)可视化单个点云 该示例应用PCL Visualizer可视化类显示单个具有XYZ信息的点云,该程序也实现了改变背景颜色和显...原创 2021-07-23 15:04:12 · 8579 阅读 · 5 评论 -
PCL学习笔记(十一)-- 简单点云可视化PCLVisualizer
一、简介 PCLVisualizer是CloudViewer的后端,但他在自己的线程中运行,若要使用PCLVisualizer类,必须调用函数,这样可以避免可视化并发的问题。但是,调用时一定要特别注意,以免发生代码混乱的情况,因为调用函数要从可视化线程中进行。二、代码解析 1)首先,声明使用的相关类的头文件:#include <pcl/visualization/cloud_viewer.h>#include <iostream>#include <p..原创 2021-07-23 09:50:28 · 1590 阅读 · 0 评论 -
PCL学习笔记(十)-- 无序点云数据集的空间变换检测
一、简介 八叉树可以实现多个无序点云之间的空间变换检测,这些点云可能在尺寸、分辨率、密度和点顺序方面有所差异。通过递归地比较八叉树的树结构,可以鉴定出由八叉树产生的体素组成之间的区别所代表的空间变化。此外,使用PCL的双缓冲技术,以便实时地探测多个点云之间的空间组成差异。二、代码分析 1)首先,实例化OctreePointCloudChangeDetector类,并定义它的体素分辨率:srand ((unsigned int) time (NULL));// 八叉树分辨率 即体素的大..原创 2021-07-22 16:13:21 · 712 阅读 · 0 评论 -
PCL学习笔记(九)-- 基于八叉树的“体素近邻搜索”、“K近邻搜索”和“半径内近邻搜索”
#include <pcl/point_cloud.h>#include <pcl/octree/octree.h>#include <iostream>#include <vector>#include <ctime>intmain (int argc, char**argv){srand ((unsigned int) time (NULL));//首先定义并实例化一个PointCloud指针对象,并用随机点集赋值给它p.原创 2021-07-22 15:36:04 · 2067 阅读 · 1 评论 -
PCL学习笔记(八)-- PCL实现快速邻域搜索
#include <pcl/point_cloud.h>#include <pcl/kdtree/kdtree_flann.h>#include <iostream>#include <vector>#include <ctime>int main (int argc, char**argv){srand (time (NULL));pcl::PointCloud<pcl::PointXYZ>::Ptr cloud .原创 2021-07-22 15:20:10 · 1961 阅读 · 0 评论 -
PCL学习笔记(七)-- 八叉树OcTree
一、八叉树简介 1)简述八叉树 描述三维空间的八叉树和描述二维空间的四叉树有相似之处,二维空间中的正方形可以被分为四个相同新装的正方形,而三维空间中的正方体可以被分为八个形状大小相同的正方体。因此,八叉树可以看成是四叉树方法在三维空间内的推广,也可以认为是三维体素阵列表示形体方法的一种改进。使用八叉树可以快速进行三维目标的集合运算,如交、并、补、差等,亦可以快速进行最近邻点或区域的搜索,缺点是八叉树需要消耗一定的存储空间。 2)八叉树的逻辑结构: 假设需要表示的形体V可以放在一个...原创 2021-07-22 14:43:55 · 7781 阅读 · 0 评论 -
PCL学习笔记(六)-- k-d tree
一、k-d tree原文链接:https://blog.youkuaiyun.com/qq_33143379/article/details/809623261)构建k-d tree k-d-tree是一棵每个节点都为k维点的二叉树,其中所有非叶子节点可以视作用一个超平面把空间分区成两个半空间( Half-space )。 最典型的创建k-d tree的方式如下: (1)随着树的深度的增加,轮流选择轴当作分区面。在三维树中,其根节点是X轴的垂直分区面,其子节点是Y轴的垂直分区面,其孙节点则是Z...转载 2021-07-22 13:37:27 · 680 阅读 · 0 评论 -
PCL学习笔记(五)-- VS2019配置LASlib
1)准备工作 完成PCL的环境设置后,下载LAStool:http://lastools.github.io/download/LAStools.zip 并解压到指定的文件夹,这里我为了配置环境方便,就放在了PCL文件夹下: 打开Visual Studio2019,打开已有的项目或解决方案,选择lastools.dsw打开,项目会自动迁移,有一些项目因为LASlib是在vc++ 6.0上编译的没法打开,选择确定就可以了。 对于加载失败的文件,选择卸载即可:2)修改...原创 2021-07-22 09:34:09 · 2974 阅读 · 11 评论 -
PCL学习笔记(四)-- 两个点云中的字段或数据拼接
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>intmain(int argc,char** argv){if(argc!=2){std::cerr<<"please specify command line arg '-f' or '-p'"<<std::endl;exit(0);}pcl::PointCloud<.原创 2021-07-22 07:43:05 · 1033 阅读 · 5 评论 -
PCL学习笔记(三)-- 从PCD文件中读写点云数据
1)读取点云数据#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>//与本程序相关的头文件声明intmain(int argc,char** argv){pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);//创建一个Poin原创 2021-07-21 15:33:03 · 1128 阅读 · 0 评论 -
PCL学习笔记(二)-- PCL与CMake测试工程文件
1)PCL安装内容 PCL安装目录下包含6个文件夹:3rdParty、bin、cmake、include、lib、share (请忽略我这里的PCLTest,这个文件夹是用来搭建环境的,详见https://blog.youkuaiyun.com/qq_45006390/article/details/118928500 (1)其中3rdParty内部有6个第三方开源包预编译库:Boost、Eigen、FLANN、OpenNI2、Qhull、VTK 预编译库文件夹中包含了安装包对应的编译器...原创 2021-07-21 14:26:08 · 1610 阅读 · 4 评论 -
PCL学习笔记(一)-- Windows下配置安装PCL开发环境
1)准备工作(1)获取All in one安装包,PCL提供了配置为Visual Studio的32位和64位下的该安装包,该包包含类PCL中所使用全部第三方编译包,除了QT编译包。(2)获取All in one包对应的PDB文件包,该包用于后期单步调试时使用。(3)获取PCL源码包。(4)安装开发工具Visual Studio编译器和CMake开发工具,需要CMake版本大于2.8.3,主要考虑到PCL中用到了高版本的一些宏定义,低版本并兼容。 All in one安装包和PDB安装.原创 2021-07-21 10:26:33 · 18040 阅读 · 32 评论