简介Cloud Compare 2.1版官方用户手册的中文翻译版原文由DGM、AB和RM编写本版本经有道文档翻译完成英译中处理适合使用Cloud Compare进行点云处理、三维测量与建模的工程师、测绘人员及科研学习者。手册内容从许可证说明与二进制安装开始依次展开软件界面、主窗口组件、可用对象类型、导航树管理、对象选择与显示等入门操作随后深入讲解3D视图及多个3D视图切换、交互性处理、显示选项自定义并系统说明对象公共属性与点云特有属性坐标、法向量、颜色以及标量场、网格组、八叉树的描述与显示还介绍了手动分割、旋转/平移等交互式修改实体的方法。资源压缩包为1个docx文档大小约21.69MB按照用户手册原有章节组织便于按主题快速定位。目前已有1767人下载学习是快速上手Cloud Compare及全面理解点云处理流程的实用参考。1. 点云差值为什么要用八叉树CloudCompare 中文手册的用法概览拿到两期扫描的厂房点云想知道哪里变了、变了多少。逐点找不现实百万级点云能在一两秒内算出距离场的工具不多CloudCompare 是其中一个。它靠的不是 GPU而是一个叫八叉树的数据结构把大点云塞进内存顺便把两片云的距离、噪声、差异对象一次算出来。这份中文资料是 CloudCompare 2.1 版用户手册的英译中结果覆盖安装、界面、编辑、工具、插件、文件格式全流程。适合刚下载软件找不到操作入口的人也适合已经跑通基础流程、想在配准和距离计算上少走弯路的人。2. 安装与界面从二进制解压到导航树的落地细节2.1 二进制包结构没有安装程序解压之后先认文件CloudCompare 的二进制发行版没有安装程序这一点初看反直觉实际是刻意的。2.1 版基于 Qt 4 重构解压 zip 之后直接跑主程序不写注册表、不装系统服务。好处是拷走整个目录就能换机器坏处是少一个依赖文件就会在启动阶段静默失败。我一般拿到压缩包先做一次完整性核对重点看几个关键文件是否齐mkdir -p CloudCompare unzip CloudCompare_2.1.zip -d CloudCompare cd CloudCompare for f in qCC.exe CC_Dll.dll FreeImage.dll mingwm10.dll \ QtCore4.dll QtGui4.dll QtOpenGL4.dll; do ls -lh $f 2/dev/null || echo 缺少 $f —— 包不完整重新下载后再试 done ls -l plugins/ # 确认 qHPRPlugin.dll 与 qPCVPlugin.dll 是否在逻辑说明qCC.exe 是主程序所有界面逻辑都编译在里面CC_Dll.dll 是核心算法库八叉树、距离计算、法线估计都在这个库里主程序相当于壳。FreeImage.dll 负责读写各种图像格式点云颜色贴图依赖它mingwm10.dll 是 MinGW 编译器运行库提供多线程支持三个 Qt 开头的 dll 是界面框架依赖。插件目录里那两个 dll 对应 HPR 隐藏点删除和 PCV 可见天空渲染属于可选组件缺了不影响主程序启动只是对应功能菜单会置灰。参数说明这个脚本没有任何调参纯粹做文件存在性和体积检查。如果某一步报错先看是文件缺失还是杀毒软件隔离了 dll后者在 Windows 上更常见。2.0 版的包结构略有不同主程序叫 CloudCompare.exe多了 OpenCV 的 cv100.dll、cxcore100.dll、highgui100.dll 和 DevIL 图像库的 devil.dll、ILU.dll、ILUT.dll还依赖 Intel 数学库 libguide40.dll 和 XML 解析库 xerces-c_2_7.dll。如果还在用老版本记得补装 Microsoft C 运行库否则启动会提示缺少 msvcp71.dll 和 msvcr71.dll。2.2 主窗口与导航树对象管理的核心不是视图而是层级打开 qCC.exe 之后主窗口由菜单栏、工具栏、3D 视图区、控制台和状态栏组成。新手最容易忽略的是左侧的导航树这个树才是 CloudCompare 交互的核心。3D 视图只负责渲染导航树负责管理对象的存在、选中、显隐和层级关系。导航树里每一行对应一个实体对象点云、网格、折线甚至标量场和传感器。点云是最基础的类型网格和折线在 CloudCompare 的内部逻辑里不是什么独立几何而是具有特定结构的点云集合——顶点集加拓扑关系。这个定位决定了后续所有工具的行为比如网格测量、网格采样本质都是对顶点集做操作不要指望它有完整的 B-rep 建模能力。选中对象有两种方式在导航树里单击行或者在 3D 视图里直接点选。前者选对象整体后者选的是点或面。改属性、算距离、做配准全部以导航树选中状态为准。所以每次操作前我习惯先看一眼导航树高亮的是哪一行这个习惯能避免一半的误操作。2.3 多视图与显示选项把点云调到看得清再说处理3D 视图默认只有一个菜单里的3D 视图可以新建多个视图支持平铺和级联。对比两期点云时我通常开两个视图左右平铺左边放基准期右边放比较期比来回切换单个视图直观得多。显示选项集中在显示菜单里几个常用开关的用途如下菜单项作用使用场景全屏 / 刷新切换视角与强制重绘点云更新后画面残留时用测试帧速率显示 FPS 与绘制耗时判断是否开了过大的点云导致卡顿切换为中心观点将相机对准选中对象中心对象不在视野中央时切换基于观众视角按屏幕方向修正视角倾斜摄影数据常用渲染文件把当前视图导出为图片交付截图做记录控制台打开日志窗格查看工具运行时的报错信息显示菜单下半部分还有光照与材质子菜单涉及太阳光线、自定义光切换。对点云来说光照影响的是曲面着色效果法线正确时开了光照更立体法线乱时开了光照更难看。建议处理之前先关掉太阳光线用纯颜色显示确认数据本身没问题再开光照看法线效果。2.4 界面上容易误判的三个状态对象在导航树里但视图里看不见十有八九是点云被缩成了一个小点。默认点大小在百万点时几乎不可见先检查显示设置里的点大小再检查对象是否被隐藏。选中对象后属性面板显示的信息是只读还是可改CloudCompare 的属性面板中有公共属性名称、显示状态等和点云专有属性坐标范围、点数、标量场列表。公共属性里能直接改名称专有属性基本只读改数值要靠对应的编辑工具别在面板里硬改。多个 3D 视图同步旋转需要手动做软件不会自动联动。对比两片云时我习惯先在一个视图里转好视角再对另一个视图做同样操作或者干脆用切换为中心观点让两个视图都瞄准对象中心减少手动对齐视角的误差。3. 编辑菜单的顺序逻辑颜色、法线与标量场的正确调用链3.1 颜色处理从统一设色到高度斜坡可视化编辑菜单里第一组操作是颜色相关的。颜色 设置独特的颜色给选中对象一个统一颜色适合区分不同来源的点云。比如基准期和比较期一个设红一个设蓝叠在一起时重叠区变成洋红色一眼能看出大致偏差区域。颜色 再着色的作用是重置或重算颜色当标量场转成 RGB 之后想退回纯色显示就用它。颜色 斜坡高度是按高度值把颜色带映射到点上操作时先选中点云打开对话框会看到高度范围和颜色带两个参数高度范围默认取对象实际 Z 范围一般不用改颜色带决定从低到高映射的颜色顺序默认是蓝到红低处冷色、高处暖色。做变形监测或者地形对比时高度斜坡是最快的地形可视化方式但它只认 Z 值不认法线方向对倾斜墙面会产生奇异的颜色渐变。要让颜色沿某个自定义方向变化先用标量场转 RGB不要硬套高度斜坡。3.2 法线计算与方向解决所有几何操作的前置条件法线是 CloudCompare 里最容易出问题的属性。很多工具——配准、距离测量、光照着色、网格生成——都依赖法线但新导入的点云往往没有法线或者法线方向是乱的。编辑 法线 计算会基于邻域点拟合局部平面来估计法线。关键参数是邻域半径或邻居点数半径太小噪声大半径太大边缘特征被磨平。对中等密度点云我习惯先用默认参数算一遍看渲染效果再调。编辑 法线 反转把选中对象的法线全部翻面。适用场景是某个对象整体是内表面法线朝里显示出来偏暗翻一次就对了。真正实用的是编辑 法线 解决方向。它会让软件自动统一法线朝向常见做法是用传感器位置或视线方向作为基准把朝向观测点的法线保留背向的翻过来。处理扫描数据时法线要么全部朝外、要么全部朝相机混合朝向会让光照渲染出现一半亮一半暗的诡异效果这个命令就是干这个的。处理顺序建议先计算法线再检查渲染效果有问题先转方向反向混乱就点解决方向把这一步放在任何距离计算和配准之前。法线错了后面所有结果都是建立在一个错误前提上。3.3 标量场链路高斯滤波、过滤值与差值标量场Scalar Field是附着在点云上的一个浮点属性列距离值、强度值、颜色分量都可以是标量场。标量场处理的正确顺序是先滤波再参与计算最后转 RGB 可视化。编辑 标量场 高斯滤波对标量场做平滑。参数是 sigma等价于窗口宽度。sigma 太小几乎没效果sigma 太大会把真实突变也抹掉。对激光扫描噪声sigma 取点云平均间距的 3 到 5 倍是一个常用起手值。编辑 标量场 过滤的值按值域筛选点保留标量值在指定区间内的点区间外的点被移除。这就是最简单的噪声剔除先算距离场距离超过某个阈值的点大概率是飘点或粗差用过滤直接去掉剩下的才是可信的差异区域。编辑 标量场 区别计算两个标量场的差。这个工具在多期数据对比里很有用比如把两期点云分别投影成高度场再做差值得到的就是沉降分布。参数就是选两个场顺序决定正负号。编辑 标量场 繁殖把一个对象的标量场复制到另一个结构兼容的对象上要求两边点数一致。编辑 标量场 转换为 RGB把当前标量场映射成颜色显示映射范围默认取场的实际值域也可以手动设最大最小值以突出某段区间。3.4 八叉树重采样与子采样降重的两个层次大点云处理前经常要做数据降重。编辑 八叉树 计算先构建八叉树这个结构是 CloudCompare 内存管理和快速距离计算的物理基础。构建完成后编辑 八叉树 重新取样按空间格网抽点每个格网单元保留一个代表点格网步长参数直接决定输出密度。如果只是想让点数降下来以便更快预览用编辑 子样品做随机抽稀更直接。参数是保留比例或目标点数随机抽稀对后续距离计算是有偏的所以正式计算用八叉树重采样预览用子采样。编辑 网格计算把点云网格化生成三角网。网格 样本点从三角网上重新采样点云适合把不规则网格转换回密度可控的点云。网格 测量表面计算网格表面面积。3.5 编辑操作里最常见的三个顺序错误先做颜色斜坡再做距离计算等于用渲染色去猜数值。所有量化操作应该基于原始值或滤波后的标量场颜色只是最终展示。法线反转之后不检查直接做配准轻则收敛慢重则配准反了。配准前在视图里转一圈确认光照效果稳定。标量场过滤用一次就删掉原始数据。过滤是不可逆的后悔药不存在正确做法是先克隆一份再过滤保留原始对象这点成本在数据处理里算便宜的。4. 常见问题排查距离、配准与分割的五个典型坑4.1 距离计算结果差了一个数量级现象两片明显接近的点云算出来的平均距离是 0.5而肉眼观察偏差应该在 0.05 左右整体偏大一个量级。原因单位的锅。CloudCompare 不关心你的坐标单位数据是米还是毫米它照算。如果一片云是米制、另一片是毫米制距离结果会直接反映这个数量级差异。另一种常见情况是投影坐标系和地理坐标系混用两片云的尺度本身就差着 10 的 n 次方。解决在编辑里检查对象的坐标范围看最小最大值的量级是否一致。不一致就用编辑 乘把其中一片的坐标整体缩放对齐。毫米转米就乘 0.001米转毫米乘 1000。从那以后我拿到新数据第一件事就是看一眼导航树里对象的 bounding box 范围这个习惯是从翻车里捞出来的。4.2 精配准之后点云还是飘的现象点了工具 注册 注册软件报告收敛、RMS 值也在下降但把两片云叠在一起看还是错开一个角度。原因直接在精配准阶段跑 ICP但没有先做初始对齐。ICP 是局部优化算法两片云初始位置差太大时它只会收敛到最近的局部最优而这个局部最优往往不是全局对齐。工具 注册 对齐是手动/半自动初始对齐需要人工选三组以上同名点。跳过的后果就是配准结果依赖初始位姿典型的黑匣子操作。解决先对齐选好至少三对特征点角点、固定螺栓、管道交点都行让两片云大概叠上再跑注册做精配准。注册对话框里的 RMS 值和最终变换矩阵都要保存下来。配准完成后把两片云叠一起旋转查看别只看数值。4.3 分割出来的对象在边界断裂现象用工具 分割 标签连接组件提取单个物体结果一个完整的设备被劈成多块。原因连接组件的逻辑是靠点间距离连通距离阈值设小了扫描点密度不均匀的区域就会断成多个组件。激光扫描的近处点密、远处点疏一套固定的阈值不可能同时满足两个区域。解决先看点云密度用编辑 八叉树 计算获得每点邻域信息再用点间距统计值做参考设置距离阈值。阈值设成平均点间距的 5 到 10 倍比较稳。如果目标物体和背景粘连先手动分割把目标框出来再做连接组件。4.4 标量场全是噪点看不出趋势现象距离计算做完了把距离场转成颜色显示满屏五颜六色随机闪烁完全没有连续渐变的区域感。原因没有先做高斯滤波或者 sigma 设得太小。原始扫描噪声直接反映到距离场上每点的距离值都带随机抖动颜色自然跟着抖。解决回到标量场链路先执行编辑 标量场 高斯滤波sigma 从点云平均间距的 3 倍起调看趋势出来没有没出来再往上加。注意别加过头sigma 过大会把真实差异也滤掉特征边缘会变模糊。4.5 渲染时对象忽明忽暗转个视角颜色就跳现象旋转视角时点云表面明暗闪烁同一块区域换个角度颜色就变像金属光泽乱闪。原因法线方向混乱。每点法线朝向不一致光照计算时入射角乱跳渲染结果就不稳定。扫描数据常见尤其是多站拼接的点云各站法线朝向没有统一。解决执行编辑 法线 解决方向先把整体朝向统一再执行编辑 法线 反转检查是否整体反了。确认渲染稳定之后再做后续操作。5. 传感器与深度缓冲从定位标注到噪声过滤的完整数据流5.1 创建传感器与修改参数定位之前先确认坐标系传感器在 CloudCompare 里不是硬件是一个描述扫描仪位置的数学对象。它记录位置坐标、朝向、视场角和分辨率作用有二一是给法线方向解决提供基准二是计算深度缓冲说明哪些区域可见、哪些被遮挡。编辑 传感器 创建打开对话框需要填传感器位置和朝向。这里最大的坑是坐标系传感器位置必须和目标点云在同一坐标系下否则算出来的可见性完全是错的。如果数据是从地面激光扫描仪导出的扫描中心坐标一般在原始数据文件的元数据里。拿不到位置就手动用明显特征比如球体靶标中心估算一个。编辑 传感器 修改可以随时改参数。创建之后要验证把传感器位置在 3D 视图里显示出来确认它落在点云外侧而不是内部。传感器埋进点云里深度缓冲基本全废。5.2 深度缓冲显示与导出编辑 地面激光雷达传感器 显示深度缓冲把当前视角下的深度值渲染成灰度图近处亮、远处暗。它的价值是暴露遮挡关系你以为扫到了完整表面实际上有一大片被柱子挡在阴影里深度缓冲一眼就能看出盲区。编辑 地面激光雷达传感器 导出深度缓冲把深度图写成本地文件用于进一步分析或交付。导出参数主要包括深度范围和量化位数深度范围应匹配场景实际距离量化位数决定深度精度8 位看个大概16 位才能做定量分析。深度缓冲的意义在于它把点云的可见性问题变成了一个图像问题。噪声点往往是在深度上离周围特别远的点深度图上的孤立亮斑或暗斑就是可疑噪声。我把这个当作一种直观的噪声检视手段比直接看 3D 视图更省力。5.3 标量场梯度与统计参数从噪声到差异的转化编辑 标量场梯度计算标量场的空间变化率用在变形监测里找应变集中区域用在分类里找特征突变边界。梯度场的值越大说明局部变化越剧烈通常需要先高斯滤波再算梯度否则噪声产生的假梯度会淹没真信息。工具 统计 stat. params和工具 统计 统计测试是一对配套操作。前者计算点云属性分布的统计参数均值、方差等后者做假设检验判断两个数据集在一次采样差异下是否来自同一分布。这个在做重复扫描一致性验证时很实用同一场景扫两遍如果统计测试显示差异显著说明两次扫描之间有真实变化而不是纯噪声。操作顺序我一般固定为距离计算 → 高斯滤波 → 统计参数 → 统计测试 → 转 RGB 出图。把统计参数和可视化作对照数值和图形互相印证结果才敢交付。5.4 传感器数据流的三个注意点深度缓冲显示的是当前视图下的可见性换视角结果就变因为遮挡关系是从传感器位置出发的。要测不同角度的遮挡得改传感器位置或转视图重算。导出深度缓冲前先确认深度范围参数范围设窄了远处全部溢出为全白。溢出没有警告肉眼看着是白的就以为是墙实际是数据被截断了。统计测试对数据独立性有要求相邻点是空间相关的直接用全部点做检验会高估显著性。常见做法是先下采样让点间距大于传感器空间分辨率再用采样后的点做测试。6. 插件、格式与验证把 CloudCompare 的结果反查一遍再交付6.1 PCV 与 HPR插件能做什么、不能做什么插件目录里两个可选组件qHPRPlugin.dll 提供隐藏点删除Hidden Point Removal作用是自动识别从某个视角看被遮挡的点并删除适合从稠密点云里提炼可见表面qPCVPlugin.dll 提供可见天空的一部分Portion of Visible Sky渲染把每个点可见的天空比例映射成颜色评估峡谷、厂房内部的遮蔽程度。插件的边界在数据规模上百万点级别没问题千万点就不能依赖这两个插件要先降采样。6.2 打开与保存格式支持不做无边界假设手册附录列了可识别的 2D/3D 文件类型、打开保存规则和特殊格式。ICM 格式是专用格式深度地图导出的文件也被单独列为特殊格式。实际使用中我的习惯是交换用常见格式LAS、PLY、E57中间过程用软件内置格式保存附加信息法线、标量场交付前再转通用格式。任何格式转换前先看一眼控制台日志确认没有丢标量场的警告。6.3 验证方法把结果反向检查一遍处理完一组点云我不会直接信界面上的颜色和数值而是做一次独立验证。距离计算完成后把距离标量场导出来用脚本看分布特征import numpy as np vals np.loadtxt(distances.txt, skiprows1) print(点数:, len(vals)) print(距离范围: %.4f ~ %.4f % (vals.min(), vals.max())) print(均值: %.4f 中位数: %.4f % (vals.mean(), np.median(vals)))逻辑说明skiprows1 跳过表头行加载后打印范围、均值和中位数。如果中位数明显小于均值说明存在少量特大差值先查离群点再下结论。参数说明导出格式不同时改用 csv 模块读取如果导出的是 RGB 映射后的颜色而不是原始值这套统计就没有意义了务必在导出对话框里选原始标量场。从那以后我每次交付前都强制走一遍算距离 → 看中位数 vs 均值 → 转颜色 → 转视角复查这套流程花费五分钟但挡住了好几次把错误结果送到下游的尴尬。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?