摘要: C#和C++联合编程有以下两种常用的方式: 利用PInvoke实现直接调用,该方法仅支持函数调用。 利用C++/CLI作为代理中间层。 目前,我可能会多用到第一种方式因此本文介绍第一种方式。 基于PInvoke调用C++ 数据类型大小 虽然不同语言中可能对于不同类型的名字不同,但其根本上都是在操作对 阅读全文
posted @ 2025-12-15 20:28 Ytytyty 阅读(2) 评论(0) 推荐(0)
摘要: Difference of Normals Based Segmentation 该算法基于一个点在不同大小邻域所得到的两个法向量的插值为依据对点进行分割。该方法计算效率高,并且对于大规模的无组织点云数据具有很好的效果。 算法流程 1️⃣ 使用较大的支持半径 (r_l),为点云中的每一个点估计法向量 阅读全文
posted @ 2025-12-15 16:29 Ytytyty 阅读(1) 评论(0) 推荐(0)
摘要: Conditional Euclidean Clustering 该算法与欧几里得聚簇聚簇方法流程无区别。最大的特点在于需要用户传入一个函数指针,来指明点和点之间的合并规则。但该类会在循环的过程中调用判断条件,因此聚簇性能会受到影响。 使用示例 bool enforceNormalOrIntensi 阅读全文
posted @ 2025-12-15 14:59 Ytytyty 阅读(2) 评论(0) 推荐(0)
摘要: PCL中的SACSegmentation算法集成了多种分割方法,包括RANSAC等。通过给出的指定模型分割出最接近指定模型形态的点云区域。 阅读全文
posted @ 2025-12-15 14:02 Ytytyty 阅读(2) 评论(0) 推荐(0)
摘要: 该算法通过距离连通性作为判据,从任意种子点出发,利用近邻搜索不断向外扩展,最终将点云划分为多个空间上彼此独立的连通点云簇。 算法流程 1️⃣ 构建空间搜索结构 对输入的无组织点云 (P) 构建 Kd-tree,用于后续高效的邻域(半径)搜索。 2️⃣ 初始化容器 初始化一个空的聚类集合 (C),以及 阅读全文
posted @ 2025-12-14 20:49 Ytytyty 阅读(2) 评论(0) 推荐(0)
摘要: 基于法向量夹角的区域生长聚簇 通过比较点之间法向量的夹角大小来判断点之间是否处于同一曲面,从而判断点之间是否聚簇。 算法流程 1️⃣ 初始化种子点 选中的点被加入一个称为 seeds(种子点集) 的集合,同时该点也被加入当前区域(Region)。 2️⃣ 遍历种子点 从 seeds 中取出一个种子点 阅读全文
posted @ 2025-12-14 20:44 Ytytyty 阅读(3) 评论(0) 推荐(0)
摘要: 📘 Canny 边缘检测学习笔记 一、Canny 算子 Canny 不是一个算子,而是一套“边缘提取流程” 目标:边缘准、细、连续、抗噪 二、Canny 的完整处理流程(最小必要) 高斯滤波 → 梯度计算 → 非极大值抑制(NMS) → 双阈值 → 滞后连接 重点: NMS:决定“是不是一条线” 阅读全文
posted @ 2025-12-13 14:10 Ytytyty 阅读(5) 评论(0) 推荐(0)
摘要: 📘 Sobel 一、Sobel 算子是什么? Sobel 算子是一种一阶梯度算子,用于检测图像中灰度变化剧烈的位置(边缘)。 一句话理解: Sobel = 带平滑的一阶差分(梯度) 二、Sobel 的核心目的 增强边缘 抑制平坦区域 降低噪声对梯度的影响 ⚠️ Sobel 不是: 提高分辨率 提高 阅读全文
posted @ 2025-12-13 13:00 Ytytyty 阅读(0) 评论(0) 推荐(0)
摘要: 一个不常用,但还是记录一下的要求。 当我们选择路径后,出于一些原因,我们不希望用户选择的文件路径相对于我们当前软件的路径深度过深。这时候,我们就需要判断一下路径深度。代码如下 判断路径深度 private bool CheckPath(string tmpPath,int depth) { retu 阅读全文
posted @ 2025-12-02 21:20 Ytytyty 阅读(3) 评论(0) 推荐(0)
摘要: 11 阅读全文
posted @ 2025-12-02 16:24 Ytytyty 阅读(2) 评论(0) 推荐(0)