CloudCompare命令行批量执行数据下采样去噪

文章介绍了在处理大量点云数据时,如何使用CloudCompare的命令行模式避免软件卡死。通过Powershell脚本自动化执行下采样和去噪操作,将LAS文件转换为PLY文件,减少数据量。脚本确保每个处理任务完成后才开始下一个,防止系统过载。
Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

如果你不想用 C / python,而是使用CloudCompare进行大量点云数据处理时,会面临一个问题:直接将高达40个G的点云同时载入CloudCompare会导致卡死 ,即使你的内存充足也无法同时处理全部数据。而手动处理逐个子点云文件费时费力,这时就需要使用CloudCompare的命令行模式进行预处理工作了。

官方文档:https://www.cloudcompare.org/doc/wiki/index.php

我需要对原始点云进行下采样和去噪,一般经过这两步的处理后,总体数据大小可以减少到可接受的范围,方便后续处理。

以下powershell脚本实现了该功能:

$pattern = "G:\LiDAR\OriginLAS\*.las"	# 原始数据路径
$absolutePaths = (Get-ChildItem -Path $pattern | Resolve-Path).ProviderPath	# 提取每个las文件的路径
$absolutePaths | ForEach-Object {
	# 结果输出到 "G:\LiDAR\pointcloud04\*.ply"
    $savePath = $_ -replace "OriginLAS", "pointcloud04"
    $savePath = $savePath -replace "\.las$", ".ply"
    # 忽略已处理的文件
    if (-not (Test-Path -Path $savePath)) {
        echo "----------------------------------------------------------------------------"
        echo $_ "-->" $savePath
        echo "----------------------------------------------------------------------------"
        # 运行CloudCompare,执行文件读入、下采样0.4、SOR滤波6,1、保存
        CloudCompare.exe -SILENT -C_EXPORT_FMT ply -AUTO_SAVE OFF -O -GLOBAL_SHIFT AUTO $_ -SS SPATIAL 0.4 -SOR 6 1 -SAVE_CLOUDS FILE $savePath
        # *重要* 由于上一步是非阻塞的,睡眠等待执行完成再开始下一个,不然会全部一起运行容易导致卡死。建议一开始设置为一个较大值,处理一个文件后,将该睡眠时长修改为该文件的处理时长。
        Start-Sleep -Seconds 300
    }
}

注意:路径中不能有中文或空格,否则会报错:

# 路径中有空格报错
Invalid parameter: specified 3 file names, but there are 1 clouds

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值