CloudCompare比较点云并统计特定距离误差范围内的点数

1.导入点云

点击文件夹图标,选择要导入到CC(CloudCompare)处理的两个点云,最终可看到点云目录树:

在这里插入图片描述

2.旋转或平移某个点云

导入点云后,所有点云的坐标系已统一,如果要单独平移或者旋转某个点云,先在目录树中点击选中需要操作的点云对象,然后点击菜单栏的图标或者Edit->Translate/Rotate

在这里插入图片描述

出现平移和旋转的自由度选项:

在这里插入图片描述

默认鼠标右键调节T-xyz三自由度的平移,鼠标左键调节R-xyz三轴旋转,可以取消勾选对应坐标系,或者选择Rotation里的None、x等选项来固定要调节的自由度。

3.配准点云

如果初始的两个点云位姿相差太大,可以按照上面的操作手动旋转平移点云叠加在一起,如果手动很难叠加,可以用CC的手选参考点配准,Ctrl+左键点击选择两个点云后,选择菜单栏的粗配准:

在这里插入图片描述
然后选择尽可能明显的匹配点,点击图中右下角align完成粗配准:
在这里插入图片描述

最后再精配准,依旧选择两个点云,点击粗配准旁边的精配准图标:

在这里插入图片描述

参数都是默认参数,可以按照自己点云的粗糙程度之类的来调节参数。选择好待配准点云aligned和参考点云reference,可以swap交换参考点云:

在这里插入图片描述

3.点云差异比较

配准完成后,点击参考点云和配准点云,.registered后缀的就是配准好的点云:

在这里插入图片描述

然后点击菜单栏的点对点比较图标:

在这里插入图片描述

选择参考和被比较点云:

在这里插入图片描述

参数为默认参数:

在这里插入图片描述

点击compute计算误差以后,可以看到差异部分用不同颜色表示了出来:

在这里插入图片描述

点击被比较的点云,查看properties里的visible属性,可以显示误差颜色图,如下:

在这里插入图片描述

4.统计特定误差范围内的点云数量

如果想计算误差在某个范围内的点云数量,首先点击要处理的点云,然后点击菜单栏的min-max图标:

在这里插入图片描述

输入想要统计的误差范围,单位和输入点云的原始单位一致:

在这里插入图片描述

点击export是单独提取出误差范围内的点云作为一个点云模型,点击split是分离误差范围内的点云和误差范围外的点云作为两个点云模型,这里就是export提取出来的单独点云模型:

在这里插入图片描述

右键这个点云,选择第一项information:

在这里插入图片描述

可看到这个点云的总点数:

在这里插入图片描述

也可以点击菜单栏的Histogram图标得到不同范围的误差直方图统计结果,可以点击直方图右上角两个图标导出为csv文件或者图片,但是无法设置每个直方柱的具体数值宽度,你也可以在图上鼠标滚轮滚动调节直方柱的分类数量,往前滚增加柱子classes,往后减少柱子:

在这里插入图片描述

### 如何在 CloudCompare 中计算点云与真实值之间的距离 #### 工具准备 CloudCompare 是一款功能强大的开源软件,用于处理三维点云和网格数据。它支持多种文件格式,包括 `.ply` 和 `.obj` 文件。通过加载生成的估计点云(`.ply` 格式)以及真实的参考点云或网格(`.obj` 或 `.ply` 格式),可以实现两者间的对齐计算它们之间的距离。 --- #### 数据预处理 在进行距离计算之前,需确保两个点云处于相同的坐标系下。如果原始数据未对齐,则需要先执行以下操作: 1. **导入点云/网格** 使用 `File -> Open` 功能分别打开生成的点云(`.ply` 格式)和真值网格(`.obj` 或 `.ply` 格式)。 2. **手动调整位置** 如果两者的初始位置相差较大,可以通过鼠标拖拽或者键盘快捷键初步调整其相对位置[^2]。 3. **自动配准** 利用 CloudCompare 提供的 ICP (Iterative Closest Point) 算法完成精确对齐: - 选中待配准的点云; - 菜单栏选择 `Tools -> Align clouds -> ICP...`; - 设置参数后运行算法直至收敛。 --- #### 距离计算流程 一旦点云成功对齐,即可进入核心的距离计算阶段: 1. **创建最近邻映射** - 选中目标点云(即生成的估计点云); - 执行命令 `Filter -> Compute distances to reference cloud/mesh`; - 在弹出窗口中指定参考对象为真值网格或点云。 2. **设置距离计算模式** - 默认情况下,CloudCompare 会计算每一点到参考几何体的最短欧氏距离; - 用户可以选择是否保存这些距离作为新属性附加至原有点云。 3. **可视化热图** - 完成距离计算后,切换视图显示方式为颜色编码模式 (`View -> Color coding`); - 将颜色范围绑定至刚计算得到的距离字段,从而直观呈现偏差分布情况。 4. **统计分析** 对于定量评估,可进一步提取均方根误差(RMSE),这不仅反映了整体匹配质量,还间接验证了尺度一致性[^3]: \[ RMSE = \sqrt{\frac{1}{N} \sum_{i=1}^{N}(d_i)^2} \] 其中 \( d_i \) 表示第 i 个点对应的实际偏离量,\( N \) 总共参与比较的数据点数。 --- #### 注意事项 - 若发现显著失配现象,可能源于尺度差异而非单纯旋转平移错误。此时建议重新校正比例因子后再重复上述过程。 - 当面对复杂场景时,适当裁剪无关区域有助于提升运算效率及结果可靠性。 ```python import numpy as np def calculate_rmse(distances): """ Calculate Root Mean Square Error from an array of distance values. Parameters: distances (list or ndarray): Measured deviations between points. Returns: float: Computed RMSE value. """ squared_errors = np.array(distances)**2 mean_squared_error = np.mean(squared_errors) rmse_value = np.sqrt(mean_squared_error) return rmse_value ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值