libLAS与LASlib(with LASzip)简概与编译过程

一、libLAS与LASlib(with LASzip)简概

(一)libLAS简概

         libLAS是一个用于读取和写入以ASPRS激光(LAS)文件格式(版本 1.0、1.1 和 1.2)编码的地理空间数据的库。LAS 格式数据是一种顺序二进制格式,其在激光雷达处理操作中被广泛使用[1]

        自2018年来,libLAS项目由PDAL项目替代接续,LAS或LAZ 1.4版本数据存取处理仅由PDAL支持,相关简述可见参考资料[2]。现如今,直接编译libLAS源码进行开发的情况很少。

图源: PDAL - Point Data Abstraction Library — Point Data Abstraction Library (PDAL)

(二)LASlib(with LASzip)简概

            LASlib(with LASzip)是一个针对LAS标准格式存储或LAZ压缩格式(1.0-1.3)存储的激光雷达点云数据读写的C++编程API。LASlib包含了独立的LASzip压缩库,以为LAS标准格式数据提供无损压缩与解压。LASlib(with LASzip)具有使用简单、轻量级并且处理速度快的优势[3]

        LAStools工具包含完整的LASlib(with LASzip)发布库[4]。 

图源: LAStools: converting, filtering, viewing, processing, and compressing LIDAR data in LAS and LAZ format

二、下载安装过程

(一)libLAS下载配置

        libLAS库的源码下载编译可参考资料[5-7],libLAS源码及其相关依赖库均可以在OSGeo4W上下载。基于博主的编译血泪史(基于VS2019编译该库存在大量的报错,涉及无法识别源码的不规范重载、工具库无法打开等),建议放弃直接编译该库,转向PDAL和LASlib的使用。

(二)LASlib(with LASzip)下载配置

        LASlib的下载编译与环境配置可参考资料[8],编译LAStools源码可以得到LASlib库文件(包含头文件和静态库文件)。

        ①LAStools源码下载(参考资料/*5*/

        编译成功的下载网址:Index of /~isenburg/lastools/download (unc.edu)

        基于Github提供的源码进行编译,会产生如下编译错误(博主未解决相关问题)。

        ②LAStools编译与环境配置(参考资料[8]/*5*/

        参考资料[8]可知,编译debug/release双版本的LASlib静态链接库需要对LASlib项目进行常规属性的配置设置(即配置输出目录和目标文件名)。实际上,编译文件已经做好相关配置了,该步骤可略过

        参考资料[8]可知,项目环境配置分别包含了LASlib(位于LASlib/inc)和LASzip(位于LASzip/src)的独立头文件。实际上,在经过编译后的install文件夹里的include文件夹已经包含了LASlib和LASzip的所有头文件,可直接包含

        其余步骤与参考资料[8]一致。

        编译生成步骤补充(下述步骤独立顺序进行,debug/release相同)

        Ⅰ 将解决方案里的ALL_BUILD、INSTALL属性的配置(debug或release)和平台设置(x64)与编程界面的配置和平台设置一致;

        Ⅱ 依次右键ALL_BUILD、INSTALL并选择生成(或重新生成),编译后的静态链接库文件位于自己创建的install文件夹下。

编程界面图示

注意事项

       在基于Github提供的源码进行编译会产生较多编译错误,无论是libLAS还是LASlib。二者在基于Github源码编译都会出现“LNK1104 无法打开文件’..\bin\Debug\xxx.lib‘”等报错。

       因此,源码下载参考资料/*5*/    

        ③LASlib测试Demo       

        项目配置好以后(包含头文件夹/包含库文件夹/添加依赖库.lib) ,本地调试会出现下述报错。报错原因:代码使用标记为“已弃用”的函数、类成员、变量或 typedef。 符号是使用 __declspec(deprecated) 修饰符或 C++14 [[deprecated]] 属性弃用的。

        两种解决办法/**1**/

        Ⅰ 在代码文件首行加入#pragma warning(disable : 4996),以在文件中针对随后的所有内容关闭警告。

        Ⅱ 在“项目配置属性->C/C++->高级”中的“禁用特定警告”属性添加4996,最后确定以应用更改。

        成功测试结果:

参考资料:

[1] https://en.wikipedia.org/wiki/LibLAS

[2] 三维点云处理(C++)学习记录——PDAL_c++ pdal-CSDN博客

[3] LAStools/LASlib at master · LAStools/LAStools (github.com)

[4] LAStools: converting, filtering, viewing, processing, and compressing LIDAR data in LAS and LAZ format

[5] libLAS1.8.0 编译和配置(转)_liblas编译-CSDN博客

[6] Compilation — liblas.org

[7] Installing libLAS using OSGeo4W — liblas.org

[8] 

【点云】使用VS2019编译与配置LASlib(LAStools)-CSDN博客

重点参考资料:

/*1*/ home - rapidlasso GmbH

/*2*/ LAStools reference documentation — LAStools documentation (rapidlasso.de)

/*3*/ LASzip - rapidlasso GmbH

/*4*/ LAStools - YouTube

/*5*/ Index of /~isenburg/lastools/download

报错解决参考:

/**1**/ 编译器警告(级别 3)C4996 | Microsoft Learn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doll ~CJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值