
学习笔记-《点云库PCL从入门到精通》
学习PCL的笔记,供自己总结与复习
harden1013
这个作者很懒,什么都没留下…
展开
-
点云分割(10)
当前点云分割方法主要分为:①聚类分割;②基于随机采样一致性(RANSAC)的分割;基于欧式聚类的点云分割pcl::PointIndices::Ptr indices(new pcl::PointIndices);//创建欧式聚类对象pcl::EuclideanClusterExtraction<pcl::PointXYZ> ec;//参数配置ec.setClusterTolerance(0.02);ec.setMinClusterSize(100);ec.setMaxC原创 2022-01-13 15:35:19 · 1720 阅读 · 0 评论 -
特征点(9)
NARF特征点:深度突变位置进行边缘检测、测度表面变化的系数及主方向;Harris特征点:2D采用图像梯度,而3D采用点云表面法向量;……深度图像提取NARF特征点//深度图像边缘提取器pcl::RangeImageBorderExtractor range_image_border_extractor;//narf特征点pcl::NarfKeypoint narf_keypoint_detector(&range_image_border_extractor);//输入深原创 2021-11-29 09:22:10 · 2311 阅读 · 0 评论 -
点云匹配与配准(8)
点云配准的基本流程:提取关键点---计算特征描述子---计算坐标及位置的相似度---去除噪声对配准的干扰---刚体变换迭代最近点算法(ICP)//头文件#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h>#include <pcl/registration/icp.h>//输入输出数据pcl::PointCloud<pcl::Poin原创 2021-11-27 13:41:27 · 1400 阅读 · 0 评论 -
采样一致性(7)
采样一致性--在一定允许误差范围内分割出在模型上的点云RANSAC随机采样一致性:样本中随机抽取子集,计算子集与模型的偏差与阈值作比较,区分内点与外点,迭代重复到内点最多,此时的模型参数即为RANSAC下的估计值。RANSAC的缺陷:事先设定区分内、外点的阈值;不能确定迭代的次数;LMedS最小中值方差估计:样本中随机抽取子集,计算子集与模型的偏差与阈值作比较,取出偏差值居中的子集对应的模型参数。LMedS的缺陷:当外点数量较多时候,没法很好估计模型;采样一致性支持的几何模型:原创 2021-11-27 11:30:22 · 572 阅读 · 0 评论 -
深度图像(6)
对三维信息的描述,除了点云的直接描述外,常见的RGB-D相机获取的深度影像也是目前重要的三维信息描述方式。创建点云对应的深度图像://头文件#include <pcl/range_image/range_image.h>//设置观测弧度间隔、最大水平观测范围、最大垂直观测范围float angularResolution = (float)(1.0f * (M_PI / 180.0f));float maxAngleWidth = (float)(360.0f * (M_PI原创 2021-11-27 09:26:24 · 1698 阅读 · 0 评论 -
点云滤波(5)
点云滤波能达到的目的:去噪、去除离散点、抽稀(下采样)、平滑直通滤波器--设定范围,对范围外点云进行滤除//创建滤波器pcl::PassThrough<pcl::PointXYZ> pass;//输入原始点云pass.setInputCloud(cloud);//待筛选的属性,一般是对高度即z坐标做约束pass.setFilterFieldName("z");//设定接受范围pass.setFilterLimits(-1.0,1.0);//执行滤波pass.filte原创 2021-11-25 22:26:55 · 2291 阅读 · 0 评论 -
kd树与八叉树(4)
kd树--带约束的二分查找树八叉树--将体元分成8个子立方体基于kd树来完成对应点邻域点的搜索://创建kd树pcl::KdTreeFLANN<pcl::PointXYZ> kdtree;//设定待搜索点云kdtree.setInputCloud(cloud);//目标点:point1//按照点数做k近邻搜索int k = 10;std::vector<int> pointIdxNKNSearch(k);std::vector<float>原创 2021-11-25 20:35:01 · 649 阅读 · 0 评论 -
点云可视化(visualization)(3)
简单几何体的点云添加与显示://直线viewer->addLine<pcl::PointXYZRGB>(cloud.points[i],cloud.points[j],"line1");//平面pcl::ModelCoefficients coeffs;coeffs.values.push_back(A);coeffs.values.push_back(B);coeffs.values.push_back(C);coeffs.values.push_back(D);原创 2021-11-24 22:32:47 · 795 阅读 · 0 评论 -
输入输出IO(2)
点云文件格式--PCD文件说明VERSION . 7 # PCD文件版本为0.7FIELDS x y z rgb # 每个点具有的属性 x坐标 y坐标 z坐标 颜色SIZE 4 4 4 4 # 每个属性字段对应的大小-字节数TYPE F F F F # 每个属性字段对应的格式-F-FLOAT浮点数COUNT 1 1 1 1 # 每个属性字段包含的元素个数WIDTH 213HEIGHT 1 # 无序点云的高度设置为1,有序则按照行列即可VIEWPOINT 0 0 0 1 0 0原创 2021-11-24 16:33:39 · 676 阅读 · 0 评论 -
PCL入门(1)
PCL主要模块:分割(segmentation)、特征描述与提取(Features)、可视化(Visualization)、曲面重建(Surface)、识别(Recongnition)、检索(Search)、配准(Registration)、关键点(Keypoints)、滤波(Filters)、采样一致性(Sample consensus)、八叉树(octree)、通用模块(common)、输入输出(IO)、k维树(kdtree)PCL编程规范:头文件 --(.h) 模板类实现文件 --(.h.原创 2021-11-24 15:27:33 · 1777 阅读 · 0 评论