利用 Livox-SDK 解析 lvx 文件并在 CloudCompare 中显示

2023-11-02

利用 Livox-SDK 开发的程序,很早就完成了,今天把它们整理出来分享出来给大家。

解析 lvx 文件

exe 下载地址:lvx 批量转 las。这是一个解析 lvx 文件的轻量级的控制台程序。支持 lvx 批量转 las,从 livox-hub 中取出特定设备的点云,提取指定时间戳范围的点云。

代码下载地址:lvx 批量转 las 代码,vs2019 工程

免积分,如果觉得有用麻烦给个一键三连,有问题可以留言。

打开 cmd 或者 powershell,输入 lvx_parser.exelvx_parser.exe -h,输出提示信息:

----------parameter usages----------
  [-c] [--code]         Read data from the specified device(s) by broadcast code(s)
  [-d] [--dirmode]      Directory Mode. Input path is a directory
  [-i] [--inpath]       Transform *.lvx file(s) in the file/directory path
  [-o] [--outpath]      Save the result(s) to output path
  [-t] [--type]         Data transform type(las, txt, pcd, imu, etc.)
  [-l] [--log]          Level of the output log(0: None; 1: Simple; 2: Verpose; 3: Developer)
  [-r] [--timerange]    Extract data in specific time range(eg: 2000s-2030s, etc. The unit can be s, ms, us, ns)
  [-e] [--extrinsic]    Use Extrinsic. Apply the extrinsic parameter in the *.lvx file
  [-s] [--split]        Split Mode. Split data from multi-devices and save them separately(being developed...)
  [-q] [--info]         Query information about the *.lvx file(s)
  [-h] [--help]         Show help
----------default options----------
  if -c isn't given: get lidar data from all devices.
  if -d isn't given: Single File Mode, input path is a file.
  if -o isn't given: if Directory Mode, output path is the same as the input path;  if Single File Mode, output path is the same as the input path except the suffix.
  if -t isn't given: set Transform Type as LAS.
  if -l isn't given: set Log Level as 2(Verpose).
  if -r isn't given: get lidar date in all time.
  if -e isn't given: don't use extrinsic.
  if -s isn't given: don't use split mode.

阅读上述提示信息,就基本可以了解其用法。

除了 -i 参数是必选参数,其他均为可选参数。-i 参数表示输入的 lvx 文件路径(或者包含 lvx 文件的文件夹)。下面根据功能来介绍各个参数用法。

查询文件信息:利用 -q 参数。命令行输入 lvx_parser.exe -i lvx_file.lvx -q ,可以查询采集该 lvx 数据的 livox 设备号(LiDAR SN Code),livox-hub 的设备号、设备型号、外参信息、时间戳信息、采集的数据点个数。

单个 lvx 文件转 las:利用 -i 参数。命令行输入 lvx_parser.exe -i lvx_file.lvx ,可以加上 -o 参数指定其输出路径,不加则默认输出在原文件夹下。

lvx 批量转 las:利用 -d 参数。转换整个文件夹下的 lvx 文件,命令行输入 lvx_parser.exe -i lvx_file_folder -d ,可以加上 -o 参数指定其输出文件夹,不加则默认输出在原文件夹下。

从 livox-hub 中取出特定设备的点云:利用 -c 参数。-c 参数后面需要跟 livox 设备的设备号,若指定了具体的设备,则会从 lvx 数据中提取指定 livox 设备的点云。若不使用该选项,则表示提取全部设备的数据。若提取的设备不止一个,则可以多次使用 -c 参数,例如:lvx_parser.exe -c device_code1 -c device_code2 -i lvx_file.lvx

提取指定时间戳范围的点云:利用 -r 参数。命令行输入 lvx_parser.exe -i lvx_file.lvx -r time_start-time_end 。其中 time_start-time_end 表示一个时间范围,以"-"作为分隔符,必须加单位,单位可以是 s, ms, us, ns。时间范围是 utc 时间,输入参数为当天的秒数,与北京时间差 8 小时,请自行换算。可用的时间范围可以用 -q 参数来查询。若不加该参数,则表示提取所以时间的点云。

指定转换类型:利用 -t 参数,后面需要跟一个字符串(las, txt, pcd, imu 等)。除了 las ,也支持转换成 txt,目前 pcd 的没有实现,imu 则是提取 lvx 数据中的 imu 信息(如果有的话)。不加则表示转换为 las 格式。例如: lvx_parser.exe -i lvx_file.lvx -t las

指定输出日志信息的等级:利用 -l 参数,后面跟数字 0~3 ,表示输出详细程度不同的日志信息。

将 livox-hub 采集的数据分离到单独的文件:还未开发完,也不太想继续开发。该功能可以被 -c 参数代替,但是略麻烦。

如果有朋友对这个代码比较感兴趣,可以留言一起学习交流,完善未完成的功能,甚至一起来开发一个带图形界面的简易小工具。

在 CloudCompare 中读取 lvx 文件

资源下载地址:利用 CloudCompare 读取大疆 livox 的 lvx 文件。需要下载 CloudCompare Stereo v2.11 版本,并将此 dll 放置到其 plugins 文件夹下,即可读取大疆 livox 的 lvx 文件。
免积分,如果觉得有用麻烦给个一键三连,有问题可以留言。

借助 Livox-SDK 开发 LVX 文件的 IO 插件,集成到 CloudCompare,效果如下图所示:

在这里插入图片描述
这个 LVX_IO 插件可以读取原始点云、强度、颜色数据,将 livox-hub 内不同设备的数据分出来,识别其设备号及型号,并根据 lvx 文件内的内参信息将不同设备的点云拼接在一起。但是不读取其时间戳信息,所以动态的 lvx 数据就不要用这个插件了。
注意:经测试,该插件仅适用于 CloudCompare v2.11。其他版本的 CloudCompare 可能无法识别。

开发这个 LVX_IO 插件的初衷也是为了更方便点云数据处理,因为 CloudCompare 的功能非常强大,但是它本身不支持读取 lvx 文件,使用 livox_viewer 转成 las 格式又非常麻烦(livox_viewer 竟然不支持 lvx 批量转 las!),所以根据 CloudCompare 方便的插件机制,开发了一个 IO 插件。
这个 LVX_IO 插件对应的代码我写的比较乱,我也不打算继续维护了。对此有强烈兴趣朋友的可以评论区留言,如果确实很多人需要,我可以抽空整理一下代码,建立一个仓库大家一起维护;并整理一份完整的 CloudCompare 插件开发教程,再讲解我写的 LVX_IO 插件的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用 Livox-SDK 解析 lvx 文件并在 CloudCompare 中显示 的相关文章

  • 迅雷7计算机丢失xlfsio.dll,求大神帮忙,迅雷7出现的崩溃问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Exception thunder7 迅雷7 7 9 13 4666 Process PID 4C4 workstate 0 F 迅雷7 Program Thunder exe Microsof
  • app性能-电量测试监控

    电量的重要 对于移动端来说的重要性不用过多阐述 相信大家都能认知 流量费一些 大家还可以接受 你这产品要是得和充电宝捆着玩 没人能受的了 所以我们必须保证耗电量的稳定 获取电量命令 adb shell dumpsys battery 测试电
  • Python时间序列--股票预测(七)

    1 数据获取 import pandas as pd import datetime import pandas datareader data as web import matplotlib pyplot as plt import s
  • 《网站被黑》

    目录 一 补充知识 1 黑客攻击的步骤与防范 1 网络本身存在的安全缺陷 2 黑客攻击的步骤 3 黑客攻击的方法 4 黑客攻击的防范 被攻击前怎么做 2 黑客常见攻击与防护方法 1 常见攻击方法 2 黑客攻击的防范 被攻击后怎么办 3 we
  • 【深度学习】【CVPR2020】Revisiting the Sibling Head in Object Detector(TSD)

    CVPR2020 TSD 简要 代码运行 预备 可跳过 前馈过程 target设置 损失函数 实验 TSD task aware spatial disentanglement 代码地址 https github com Sense X T
  • 深度解析Promise.all的核心功能并手写实现

    在之前的文章中 已经手写实现了Promise的核心功能 包括resolve reject then Promise还有一些拓展方法 比如Promise all 在手写实现一些原生提供的方法时 第一步要做的事情就是先了解这个方法的使用过程和基
  • token 存储,token失效

    1 token 在诸多组件中可能用得到 建议用vuex管理数据 包裹同步mutations 和异步 actions 整个模式就变成vuex到actions 业务组件中直接触发actions函数 2 vuex存储数据的方式 基于内存 特点 存
  • python判断闰年程序_python实现闰年

    广告关闭 腾讯云11 11云上盛惠 精选热门产品助力上云 云服务器首年88元起 买的越多返的越多 最高返5000元 30个常用python实现 1 冒泡排序 2 计算x的n次方的方法 3 计算a a b b c c 4 计算阶乘 n 5 列
  • 加了@repository注解,api中启动类依然加载不到Repository,

    1 解决方法 方法一 启动类上添加 ComponentScan注解将repository 层导入 方法二 在启动类中将获得repository包的bean 没用推广性 一次方法只返回一个repository对象 方法三 写一个配置类 使用s
  • Qt知识点梳理 —— 获取设备CPU、内存、磁盘等硬件信息

    文章目录 简介 WMIC指令 具体实现 获取电脑名称 获取CPU信息 获取CPU序列号 获取内存信息 获取第一个磁盘序列号 获取磁盘信息 获取操作系统信息 获取主板序列号 获取网卡MAC地址 获取设备联网状态 运行效果 项目源码 开发环境

随机推荐

  • 【Redis】Redis使用规范

    Redis 的使用 几乎都是作为缓存中间件的 缓存用得好 当然能提高软件的运行速度 但是缓存用的不好 对于提高速度上也无法带来增益 键值对使用 好的 key 命名 能提供更好的可读性和可维护性 便于定位问题和寻找数据 value 要避免出现
  • Javaweb课后习题,Javaweb练习题及答案

    第1章网页开发基础 习题 一 填空题 1 HTML是英文 的缩写 2 标记用于定义HTML文档所要显示的内容 也称为 3 在表格标记中用于设置是否显示边框的属性是 4 引入CSS的方式有4种 分别为 行内式 也称为内联样式 和导入式 5 W
  • 刷脸支付服务商科技驱动商业变革

    刷脸支付目前在公交地铁都已经投入使用 可见刷脸支付越来越成熟 那么在支付宝第三方支付服务商的支持下 大家都在力推刷脸支付 支付宝官方给出每台刷脸设备的1600元的补贴 基于AI识别技术基础上拓展了更多的商户应用 刷脸支付适应市场的发展 移动
  • UI、UE、UX的区别

    UI UE UX的区别 大部分程序员可能对UI UE UX这几个概念不是很熟悉 但在整个项目周期里 这些岗位还是很重要的 特别是对于产品公司 这些岗位对于一个产品是否能成功起着关键的作用 老规矩 我们先看看这三个缩写的定义 UI 是User
  • SQL Server 从数据类型 varchar 转换为 numeric 时出错

    1 起因 2 执行语句 INSERT INTO dbo A student name age score VALUES 张三 22 错误提示 3 原因 因为浮点类型的数据字段无法插入空数据 4 解决 所以我在写后端拼接sql的时候 需要将语
  • javascript 保留小数的精确算法

    分享两种精确小数位的方法 1 常见的 number toFixed 2 对数字number进行四舍五入保留两位小数的操作 2 使用Math random 方法进行四舍五入 此方法不常见 不过也能在保证精度的情况下保留小数位 方法如下 仅供分
  • pip install 国内镜像源

    pip install XXX i https pypi tuna tsinghua edu cn simple 常见国内镜像源 清华 https pypi tuna tsinghua edu cn simple 阿里云 http mirr
  • 2021年MathorCup高校数学建模挑战赛—大数据竞赛A题二手车估价问题求解全过程文档及程序

    2021年MathorCup高校数学建模挑战赛 大数据竞赛 A题 二手车估价问题 原题再现 随着我国的机动车数量不断增长 人均保有量也随之增加 机动车以 二手车 形式在流通环节 包括二手车收车 二手车拍卖 二手车零售 二手车置换等环节的流通
  • windows 的文件在linux下格式不对的问题。

    执行一个脚本wifi check sh 时 一直是提示我 bash wifi check sh bin bash M bad interpreter No such file or directory 出现上面错误的原因之一是脚本文件是DO
  • 中国移动董宁:深耕区块链的第八年,我仍期待挑战丨对话MVP

    区块链技术对于多数人来说还是 新鲜 的代名词时 董宁已经成为这项技术的老朋友 董宁2015年进入区块链领域 现任中国移动研究院技术总监 区块链首席专家 作为 老友 董宁见证了区块链技术多个爆发式增长和平稳发展的阶段 他将这些过总结为 螺旋式
  • 详细拆解数字化业务转型关键步骤,如何避开5种常见陷阱?

    在如今这个数据驱动发展的时代 大数据 人工智能 云计算等新一代信息技术的应用在不断深化 促使不同行业的生产组织方式 工作流程 商业模式等都在发生颠覆性的转变 加之突如其来的新冠疫情 对实体经济造成了巨大的冲击 不少线下企业开始转型线上 寻求
  • what's ARM TCM memory?

    TCM Tightly Coupled Memory is one or multiple small dedicated memory region that as the name implies is very close to th
  • 如何在页面中添加地图

    如何在页面中添加地图 百度地图开放平台 在本节案例中 我会向大家展示如何在页面中添加地图 前置准备 首先这里我选择百度地图API 首先你需要申请成为百度开发者点这里 接着你需要填写一些项目内容 最后再实名认证 在通过上面的一顿操作后 这时候
  • SpringCloud整合Sa-token

    1 目的 之前写项目一致都使用的是 SpringSecurity 但总是感觉SpringSecurity用起来比较繁琐 所以就打算使用sa token 进行权限校验以及 登录验证 角色校验 集成比较简单 2 设计思路 整个项目 使用Spri
  • python中,数组 nums[:] 和nums有何区别?

    leetcode中有一道题 题目为 给你一个数组 nums 和一个值 val 你需要 原地 移除所有数值等于 val 的元素 并返回移除后数组的新长度 不要使用额外的数组空间 你必须仅使用 O 1 额外空间并 原地 修改输入数组 元素的顺序
  • 软件测试过程中的V模型,W模型,H模型

    V W H模型的详细介绍 1 V模型 2 W模型 3 H模型
  • Spring的注入方式的浅讲一

    spring的三种方式 网上讲法有很多 我选了个最通俗的 之后会不断整理这个博客系列 变得 深 一些 将其他人的讲法归类比较一下 找出道理和思路 第一部分肯定是简单的不能再简单地 非常适合新手 弄得自己好像不是新手一样 手动 滑稽 1 se
  • R语言与数据分析

    当今计算机系统要处理的数据类型变得多种多样 并且为了深入理解 需要对数据进行过滤 同时 开源应用变得越来广受欢迎 这一切都在改变着 R 这一用于统计分析与可视化的语言 随着时代的发展 R语言也在不断的衍变 并成为了当前很多大数据应用当中的一
  • ame 服务器无响应,ame 动态链接服务器

    ame 动态链接服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 修改云服务器信息 目前支持修改云服务器名称及描述
  • 利用 Livox-SDK 解析 lvx 文件并在 CloudCompare 中显示

    利用 Livox SDK 开发的程序 很早就完成了 今天把它们整理出来分享出来给大家 解析 lvx 文件 exe 下载地址 lvx 批量转 las 这是一个解析 lvx 文件的轻量级的控制台程序 支持 lvx 批量转 las 从 livox