使用LASlib(LASTool)库对LAS文件进行分割

本文介绍了一种将大型las文件分割成多个较小las文件的方法,通过按点数分割并保持原有点云属性,适用于处理巨大点云数据集。

       在实际的项目,有很多时候,我们会遇到一个巨大的las文件,比如7,8个G的大小。这时候,我们需要对这个大的las文件进行分块保存为多个小的las文件。可是按照点的个数进行保存,也可以按照内存的大小保存。实际上也就是对点云的读写过程。具体的代码如下所示:

void lasFileDivision()
{
	LASreadOpener lasreadopener;
	LASwriteOpener laswriteopener;
	//laslib只允许'\\'格式的文件路径。
	std::string lasFile("C:\\test\\test.las");

	int num = 1;
	//打开las文件
	lasreadopener.set_file_name(lasFile.c_str());
	LASreader* lasreader = lasreadopener.open();
	size_t count = lasreader->header.number_of_point_records;
	printf("%d", count);
	//LASpoint *one_point = new LASpoint();
	int loop_time = 0;
	LASwriter* laswriter = nullptr;
	while (lasreader->read_point())  //只让输出前 10 行坐标
	{
        //按照每889000个点一个las文件进行分割
		if (loop_time % 889000 == 0)
		{
                        //每打开一次文件都需要close();否则文件会一直占用。
                        if(laswriter != NULL)
                        {
                            laswriter->close();
                        }
			stringstream ss;
			ss 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值