摘要: Cylinder model segmentation PCL这里的圆柱分割相当于一个SAC分割的综合运用。先利用SAC分割出多个平面点云的区域,相当于去除噪点了。然后通过得到的内点索引,去提取出除了拟合平面点之外的点,再对这里的点使用SAC去找到对应的圆柱体点云。 阅读全文
posted @ 2025-12-20 22:04 Ytytyty 阅读(19) 评论(0) 推荐(0)
摘要: ConcaveHull/CONCAVEHull 凸包和凹包的区别如下图所示。 对于给定的一组点云集合,对应的凸包是唯一确定的。但凹包解不唯一。 算法流程 凹包计算 在给定投影平面上,使用一个半径为α的圆进行滚动。当α足够大时这个圆只会陷进去但不会进入到点云空间内部。其滚动的路线就是对应点云的凹包。 阅读全文
posted @ 2025-12-20 21:21 Ytytyty 阅读(189) 评论(0) 推荐(0)
摘要: MovingLeastSquares 不同于传统的最小二乘法,使用结果在全局去拟合出一个最优解。MLS针对每个目标点,在其领域上去拟合得到一个最佳曲面。并且能够在拟合得到的平面上使用高阶多项式进行插值得到补全后的点云。 算法流程 对点云中的每一个点,在其周围查找一定范围内的邻域点集,邻域通常通过固定 阅读全文
posted @ 2025-12-20 19:39 Ytytyty 阅读(102) 评论(0) 推荐(0)
摘要: C#和C++联合编程有以下两种常用的方式: 利用PInvoke实现直接调用,该方法仅支持函数调用。 利用C++/CLI作为代理中间层。 基于PInvoke调用C++ 数据类型大小 虽然不同语言中可能对于不同类型的名字不同,但其根本上都是在操作对应数据的指针。至少能够确定好C#和C++之间的类型对应关 阅读全文
posted @ 2025-12-15 20:28 Ytytyty 阅读(100) 评论(0) 推荐(0)
摘要: Difference of Normals Based Segmentation 该算法基于一个点在不同大小邻域所得到的两个法向量的插值为依据对点进行分割。该方法计算效率高,并且对于大规模的无组织点云数据具有很好的效果。 算法流程 1️⃣ 使用较大的支持半径 (r_l),为点云中的每一个点估计法向量 阅读全文
posted @ 2025-12-15 16:29 Ytytyty 阅读(53) 评论(0) 推荐(0)
摘要: Conditional Euclidean Clustering 该算法与欧几里得聚簇聚簇方法流程无区别。最大的特点在于需要用户传入一个函数指针,来指明点和点之间的合并规则。但该类会在循环的过程中调用判断条件,因此聚簇性能会受到影响。 使用示例 bool enforceNormalOrIntensi 阅读全文
posted @ 2025-12-15 14:59 Ytytyty 阅读(22) 评论(0) 推荐(0)
摘要: PCL中的SACSegmentation算法集成了多种分割方法,包括RANSAC等。通过给出的指定模型分割出最接近指定模型形态的点云区域。 阅读全文
posted @ 2025-12-15 14:02 Ytytyty 阅读(14) 评论(0) 推荐(0)
摘要: 该算法通过距离连通性作为判据,从任意种子点出发,利用近邻搜索不断向外扩展,最终将点云划分为多个空间上彼此独立的连通点云簇。 算法流程 1️⃣ 构建空间搜索结构 对输入的无组织点云 (P) 构建 Kd-tree,用于后续高效的邻域(半径)搜索。 2️⃣ 初始化容器 初始化一个空的聚类集合 (C),以及 阅读全文
posted @ 2025-12-14 20:49 Ytytyty 阅读(44) 评论(0) 推荐(0)
摘要: 基于法向量夹角的区域生长聚簇 通过比较点之间法向量的夹角大小来判断点之间是否处于同一曲面,从而判断点之间是否聚簇。 算法流程 1️⃣ 初始化种子点 选中的点被加入一个称为 seeds(种子点集) 的集合,同时该点也被加入当前区域(Region)。 2️⃣ 遍历种子点 从 seeds 中取出一个种子点 阅读全文
posted @ 2025-12-14 20:44 Ytytyty 阅读(62) 评论(0) 推荐(0)
摘要: 📘 Canny 边缘检测学习笔记 一、Canny 算子 Canny 不是一个算子,而是一套“边缘提取流程” 目标:边缘准、细、连续、抗噪 二、Canny 的完整处理流程(最小必要) 高斯滤波 → 梯度计算 → 非极大值抑制(NMS) → 双阈值 → 滞后连接 重点: NMS:决定“是不是一条线” 阅读全文
posted @ 2025-12-13 14:10 Ytytyty 阅读(165) 评论(0) 推荐(0)