CloudCompare 指南
CloudCompare 是一款点云处理软件,按 GPL 2.0 开源。
本指南将介绍以下流程。
flowchart TB src[数据源(NumPy/MATLAB)] -->|导出| 合适格式的数据文件 --> cc([用 CloudCompare 查看])
安装 CloudCompare
前往 CloudCompare - Downloads → Latest stable release,下载合适平台发行版并安装。
如果能正常启动,可直接前往下一节。
已知的兼容问题
CloudCompare一直在升级维护,新环境都能正常用,主要是不兼容旧的。
老旧显卡驱动
问题:如果是 Radeon 等老旧显卡驱动,CloudCompare 会报如下错误而无法启动,完全不可使用。
This application needs OpenGL 2.1 at least to run!
解决办法:在 CloudCompare - Downloads 继续向下滚动,改用 Older stuff → Last version compatible with old intel / ATI graphic cards (2.6.3 beta)。
v2.6发布于2016年,不支持自动设置旋转中心,不支持 SBF 数据格式,但也基本可用。
详细原因
CloudCompare 使用 Qt 管理 OpenGL 等图形渲染库,并于 v2.7.0 从 Qt 4 升级到 Qt 5,而 Qt 5 不兼容这些老旧显卡驱动。
Ubuntu 20
问题:如果是 Ubuntu 20,CloudCompare 的“打开”菜单无法识别数据格式,打开时会乱;但拖动数据文件到 CloudCompare 内则能正常打开,勉强能用。
可运行以下命令查看 Ubuntu 版本。
$ lsb_release --description
Description: Ubuntu 20.04.3 LTS
解决办法:
- 忽略问题,不用“打开”菜单,只拖动数据文件到 CloudCompare 内。
- 或者升级到 Ubuntu 22.04+。
详细情况
原因不明。Ubuntu 20 将于2025年四月停止维护,而开发者精力有限,计划放弃修复这一问题。
相关讨论:
从数据源导出合适格式
信息表示方式
CloudCompare 用序列表示点云,序列中每一项代表一点,每一点有空间坐标(x、y、z)和若干通道(如实部 real、虚部 imag):
x | y | z | real | imag |
---|---|---|---|---|
0.5 | 0.9 | 0.3 | 5.2 | 1.9 |
0.3 | 0.7 | 1.0 | 9.3 | 7.4 |
0.7 | 0.9 | 0.8 | 5.2 | 7.6 |
0.3 | 0.6 | 0.9 | 7.2 | 3.8 |
0.2 | 0.8 | 0.1 | 5.9 | 6.4 |
… | … | … | … | … |
具体数据格式
CloudCompare 支持几十种数据格式,以下两种最简单,适合导出。
-
ASCII / CSV
- 文本格式,简单直观,但存储低效。
- 无元数据,CloudCompare 打开时会弹出导入向导 Open Ascii File。(不必修改选项,直接 Apply 即可。)
- 文件名无明确规范,
*.txt
/*.csv
/*.xyz
等都可以。
0.5,0.9,0.3,5.2,1.9 0.3,0.7,1.0,9.3,7.4 0.7,0.9,0.8,5.2,7.6 0.3,0.6,0.9,7.2,3.8 0.2,0.8,0.1,5.9,6.4
-
- 二进制格式,存储高效,但人难查看。
- 分为文本元数据
*.sbf
和二进制数据*.sbf.data
两个文件,CloudCompare 打开时选择任意一个即可。
[SBF] Points=5 GlobalShift=0.000000, 0.000000, 0.000000 SFCount=2 SF1=real SF2=imag
2a2a0000 00000000 00050002 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 3f000000 3f666666 3e99999a 40a66666 3ff33333 3e99999a 3f333333 3f800000 4114cccd 40eccccd 3f333333 3f666666 3f4ccccd 40a66666 40f33333 3e99999a 3f19999a 3f666666 40e66666 40733333 3e4ccccd 3f4ccccd 3dcccccd 40bccccd 40cccccd
导出
下面将分技术栈介绍如何导出合适格式。