点云密度的计算

两种点云密度的计算方式

1.距离密度(常用)

即为每个离它最邻近点的距离的平均值。

clear all
clc
 
% 读取matlab自带的点云文件
ptCloud = pcread('teapot.ply');
% 读取点云xyz值
xyz = ptCloud.Location;
% 通过knnsearch即‘k'临近计算xyz集合里面每个点离xyz集合里面的最近点
% 由于第一个搜索的点是他本身,所以k临近个数选择了2
[idx,d] = knnsearch(xyz,xyz,'k',2);
% idx是最邻近点的索引项,用不到;d是每个点离它最邻近点的距离值
% 计算平均距离,即距离密度,单位:m
p = mean(d(:,2));

2.通过《GB/T 36100—2018 机载激光雷达点云数据质量评价指标及计算方法-规范》计算

在这里插入图片描述

clear all
clc
 
% 读取matlab自带的点云文件
ptCloud = pcread('teapot.ply');
% 读取点云xyz值
xyz = ptCloud.Location;
% 凸包计算茶壶的二维占地面积
% 凸包需要双精型,读取的xyz为单精
xyz = double(xyz);
% K返回边界索引,V返回面积
[K,V] = convhull(xyz(:,1),xyz(:,2));
% size和length都可查看点云的数量,这里以size为例
% n和m返回点云的行和列
[n,m] = size(xyz);
% n行就是点云的数量
% 由于无水域区域,所以点云的密度为总数量/面积
p =  n/V;
### 基于密度点云聚类算法概述 基于密度点云聚类算法能够有效地处理具有不同形状和尺寸的簇,并能识别噪声点。这类算法的核心在于定义空间中的某个区域如果包含足够的点,则认为这些点属于同一个簇;反之,稀疏区域则被认为是分离的不同簇或者是噪声。 #### DBSCAN算法原理 DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 是一种典型的基于密度的聚类算法[^1]。此算法不需要预先指定簇的数量,而是依赖两个重要参数来控制聚类过程: - **Eps**: 定义两点之间的最大距离,即邻域半径。 - **MinPts**: 邻域内最少需要含有的点数才能形成一个密集区。 对于每一个未访问过的点P,在其Eps范围内查找所有邻居N。如果|N| >= MinPts, 则创建一个新的簇并加入所有的核心对象及其直接密度可达的对象直到不再有新的成员可加为止。否则标记为边界点或噪音点。 ```cpp // C++伪代码展示DBSCAN部分逻辑 void expandCluster(Point p, Cluster &cluster, double eps, int minPts){ cluster.addPoint(p); vector<Point> seeds = regionQuery(p, eps); // 获取eps范围内的点集合 while (!seeds.empty()){ Point current_point = seeds.back(); seeds.pop_back(); if(!current_point.visited){ current_point.visited = true; vector<Point> neighbors = regionQuery(current_point, eps); if(neighbors.size() >= minPts){ for(auto& neighbor : neighbors){ if(!neighbor.isProcessed()){ seeds.push_back(neighbor); } if(!neighbor.getCluster().isValid()){ cluster.addPoint(neighbor); } } } } } } ``` #### OPTICS算法简介 除了DBSCAN之外,OPTICS (Ordering Points To Identify the Clustering Structure) 同样是重要的基于密度的聚类方法之一[^3]。相比于前者,后者提供了更灵活的方式去发现复杂结构的数据分布特征。OPTICS并不立即生成具体的簇划分结果,而是在遍历过程中记录下每个点相对于其它点的距离信息(reachability distance),从而构建出一条反映全局密度特性的顺序链表。最终用户可以根据不同的阈值从这条链表上提取所需的簇形态。 ### 应用场景 在实际应用中,基于密度点云聚类广泛应用于自动驾驶汽车感知环境建模、机器人导航避障规划等领域。例如,在LiDAR传感器获取到大量三维坐标数据之后,利用上述提到的方法可以帮助系统快速区分目标物体与其他背景要素,进而辅助决策层做出合理反应措施[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值