CloudCompare 本身对"批量 CSF 滤波"没有直接的一键 GUI 按钮,但它内置了 SAGA GIS 工具链调用接口(Windows 版通常捆绑或能关联 SAGA),可以通过 命令行模式 (Command Line / ccConsole.exe) 或 SAGA 的 Grid_Filter → Cloth Simulation Filter工具来实现批量处理。下面按实际工程中最靠谱的两种方式来说明。
一、先确认环境:CloudCompare 与 SAGA 关联
-
确认 SAGA 已安装
-
Windows 推荐 SAGA 2.3.x ~ 7.x(与 CloudCompare 版本兼容即可),记下安装路径,如
C:\Program Files\SAGA-GIS\saga_cmd.exe。
-
-
CloudCompare 调用 SAGA
-
CloudCompare 主界面
Options → General → SAGA path指向 saga_cmd.exe 所在目录,CloudCompare 便可在后台调 SAGA 模块做栅格滤波(包括 CSF)。 -
但注意:CloudCompare GUI 中 CSF Filter 插件是直接处理点云的(Zhang 算法),不是 SAGA 的栅格 CSF。
如果你想对点云做 CSF → 转 DTM 栅格 → 批量,有两种路线:
-
✅ 路线 A(推荐):用 CloudCompare 命令行批量跑点云 CSF(ccConsole.exe),再栅格化 → 最接近你在 GUI 里做的操作。
-
⚠️ 路线 B:先把点云转栅格 DSM → 用 SAGA 栅格 CSF(较少用,对微地形不如点云 CSF 准)。
-
-
下面重点讲路线 A(CloudCompare ccConsole 批量 CSF),顺带提 SAGA 栅格 CSF 命令供参考。
二、路线 A:CloudCompare 命令行批量 CSF 点云滤波(推荐)
CloudCompare 提供 ccConsole.exe(通常位于安装目录),支持加载点云 → 执行 CSF → 输出 Ground / Off-ground 点云,可用 bat 脚本批量跑。
1. 基本 CSF 命令行语法
"C:\Program Files\CloudCompare\ccConsole.exe" ^
-silent ^
-o "D:\data\tile_001.las" ^
-CSF_FILTER ^
-cloth_res 1.0 ^
-max_iter 500 ^
-class_thresh 0.3 ^
-time_step 0.65 ^
-rigidness 2 ^
-export_cloth false ^
-SAVE_CLOUDS ^
-FILE "D:\out\tile_001_ground.las" ^
-SAVE_CLOUDS ^
-FILE "D:\out\tile_001_nonground.las"
参数说明(与 GUI 对应):
|
CLI 参数 |
GUI 含义 |
|---|---|
|
|
Cloth resolution(m),≈点距 2~5 倍 |
|
|
Max iterations |
|
|
Classification threshold(m) |
|
|
Time step(默认即可) |
|
|
1=柔性(Flat), 2=Hilly, 3=Steep |
|
|
是否导出 cloth mesh(批量建议关以省空间) |
|
|
分别保存 Ground / Non-ground |
⚠️ ccConsole 的
-CSF_FILTER会按约定把结果分为两组:第一个-SAVE_CLOUDS保存 Ground,第二个保存 Non-ground。顺序很重要!
2. 批量处理 bat 脚本示例(遍历 LAS)
@echo off
set CC="C:\Program Files\CloudCompare\ccConsole.exe"
set IN=D:\data
set OUT=D:\out
for %%f in (%IN%\*.las) do (
echo Processing %%~nxf ...
%CC% -silent -o "%%f" ^
-CSF_FILTER -cloth_res 0.5 -max_iter 500 -class_thresh 0.3 -rigidness 2 -export_cloth false ^
-SAVE_CLOUDS -FILE "%OUT%\%%~nf_ground.las" ^
-SAVE_CLOUDS -FILE "%OUT%\%%~nf_nonground.las"
)
echo Done!
pause
运行后 D:\out\` 下会生成_ground.las(DTM 点云)和_nonground.las`。
3. 批量转 DTM 栅格(GeoTIFF)
在 ccConsole 中对 Ground 点云再做栅格化:
%CC% -silent -o "D:\out\tile_001_ground.las" ^
-RASTERIZE ^
-GRID_STEP 0.5 ^
-FIELD_Z MIN ^
-OUTPUT_RASTER "D:\dtm\tile_001_dtm.tif"
把这段嵌进 for 循环即可批量得到 TERCOM 可用的 GeoTIFF DTM。
三、路线 B:SAGA GIS 自带"Cloth Simulation Filter"(栅格版,仅参考)
SAGA 7.x+ 提供 Grid_Filter → Cloth Simulation Filter (Grid),但输入必须是栅格 DSM,不是点云,且精度受栅格化影响——乌军/北约实战中较少用此法做主 DTM,仅适合已有 DSM 栅格快速试验。
SAGA CMD 示例(DSM → DTM)
set SAGA="C:\Program Files\SAGA-GIS\saga_cmd.exe"
%SAGA% grid_filter "Cloth Simulation Filter (Grid)" ^
-INPUT "D:\dsm\tile_001_dsm.sgrd" ^
-OUTPUT "D:\dtm\tile_001_dtm.sgrd" ^
-CELLSIZE 0.5 ^
-CLOTH_RESOLUTION 1.0 ^
-MAX_ITERATIONS 500 ^
-CLASS_THRESHOLD 0.3 ^
-TIME_STEP 0.65 ^
-RIGIDNESS 2
-
输入
.sgrd(SAGA 网格格式),通常由io_gdal导入 GeoTIFF 得到。 -
输出 DTM 可再导出为 GeoTIFF:
grid_export "Export GeoTiff"。
⚠️ 注意:此法是栅格 CSF,对弹坑/窄沟渠保真度低于点云 CSF,一般只作备选。
四、实战建议(乌克兰战区数据处理)
|
场景 |
推荐流程 |
|---|---|
|
原始无人机航拍点云(.las/.laz) |
ccConsole 批量 CSF → 保存 Ground → 批量 Rasterize → GeoTIFF DTM |
|
已有 DSM 栅格(第三方提供)且只需快速去植被 |
SAGA 栅格 CSF 可做初步 DTM,但需验证微地形 |
|
大范围分幅(1km×1km tile) |
按上述 bat 逐 tile 处理,注意 tile 间重叠区可做接缝融合(TIN blend) |
|
内存/速度优化 |
先对原始点云做 |
五、一句话总结
CloudCompare 本身通过 ccConsole.exe +
-CSF_FILTER参数化调用 Zhang 的布料模拟算法,配合 Windows bat 脚本即可实现点云批量 CSF 地面/非地面分离,再批量栅格化得到 DTM——这是与你在 GUI 中操作完全等价、乌军/北约技术栈中最常用的批量处理路线。SAGA GIS 的栅格 CSF 可作为已有 DSM 栅格的辅助手段,但不替代点云 CSF。
此文由 怡心湖 编辑,若您觉得有益,欢迎分享转发!:首页 > 常识论 » 如何用CloudCompare的SAGA工具链进行CSF滤波的批量处理?