用liblas将点云写入las文件

用liblas将点云写入las文件

首先配置liblas库,可以见上一篇博客

inline int writeLas(string lasPath, Points3Ds pt3Ds) {//point3ds是我自己定义的结构std::ofstream ofs;ofs.open(lasPath, std::ios::out | std::ios::binary);if (!ofs.is_open()) {std::cerr << "无法创建 LAS 文件" << std::endl;return 1;}// 设置 LAS 文件的头部信息liblas::Header header;header.SetVersionMajor(1);header.SetVersionMinor(2);header.SetDataFormatId(liblas::ePointFormat2);header.SetScale(0.00001, 0.00001, 0.00001);//要设置,不然保存的就是整形xyzint pointsNum = pt3Ds.size();    //获取点数header.SetPointRecordsCount(pointsNum);    //设置点数// 创建一个 LAS 写入器liblas::Writer writer(ofs, header);liblas::Point point(&header);//记录数据范围double minx = 99999999;double miny = 99999999;double minz = 99999999;double maxx = -99999999;double maxy = -99999999;double maxz = -99999999;// 遍历点云数据,添加到 LAS 文件中for (const auto& pd : pt3Ds) {// 设置点的坐标double tx = pd.second.x;double ty = pd.second.y;double tz = pd.second.z;minx = minx > tx ? tx : minx;miny = miny > ty ? ty : miny;minz = minz > tz ? tz : minz;maxx = maxx < tx ? tx : maxx;maxy = maxy < ty ? ty : maxy;maxz = maxz < tz ? tz : maxz;point.SetX(tx);point.SetY(ty);point.SetZ(tz);// 设置点的颜色liblas::Color color;color.SetRed(pd.second.r);color.SetGreen(pd.second.g);color.SetBlue(pd.second.b);point.SetColor(color);// 将点写入文件writer.WritePoint(point);}header.SetMax(maxx, maxy, maxz);    //设置数据范围header.SetMin(minx, miny, minz);//(若中间处理过程点数有变化的话,可以通过此方法进行修改)//(若无变动,则可以在一开始就设置点数)writer.SetHeader(header);    //设置文件头writer.WriteHeader();    //重写文件头// 关闭文件ofs.close();std::cout << "LAS 文件创建成功。" << std::endl;return 0;
}

其中一定要SetScale啊,搞了很久!
在debug模式下可以顺利保存点云,但是release下报内存问题,没找到原因!
放弃准备用laslib试试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宏景eHR SQL 注入漏洞复现(CVE-2023-6655)

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR 中发现了一种被分类为关键的漏洞,该漏洞影响了Login Interface组件中/w_selfservice/oauthservlet/%2e../.%2e/genera…

C#随笔 | List.Sort()使用小计

1、使用List.Sort()对基本数值类型数据进行排序 案例&#xff1a;对存放int数据的List进行排序 其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大&#xff0c;小&#xff0c;相等。默认List的排序是升序排序。 举个例子&#xff1a;在比较函数Co…

ICV:2023 年上半年全球量子计算的进展

​ 2023年上半年&#xff0c;量子计算&#xff08;QC&#xff09;领域取得了一系列重要进展和突破&#xff0c;显示出量子计算技术的快速发展和商业应用的不断拓展。本报告从制度进步、产业生态、投融资形势、总结与展望四个方面对量子计算领域进行了系统而详细的分析。报告不仅…

You cannot access body after reading from request‘s data stream 处理办法

参考&#xff1a; https://blog.csdn.net/qq_33036061/article/details/109528061 https://www.dmge.cn/article/1028 这个错误的原因是&#xff0c;当你从 request.body 中读取数据时&#xff0c;Django 会把数据流的指针移动到数据流的末尾。这意味着你不能再次从数据流中读…

每天一点python——day94

#每天一点Python——94 #面向对象的三大特征——封装 封装&#xff1a;隐藏内部细节&#xff0c;对外提供操作方式。【提高程序的安全性】 继承&#xff1a;在函数调用时&#xff0c;使用’形参名称值‘的方式进行传参&#xff0c;传递参数的顺序可以与定义时参数顺序不同【提高…

push和扩展运算符...引发的问题

文章目录 一、问题二、原因三、解决3.1、使用拓展运算符...合并&#xff08;推荐使用&#xff09;3.2、使用concat合并3.3、循环push 四、最后 一、问题 const items [] const newItems new Array(1000000) items.push(...newItems)上面代码会出现如下错误&#xff1a; Unc…

从零开始搭建企业管理系统(七):RBAC 之用户管理

RBAC 之用户管理 创建表&#xff08;Entity&#xff09;用户表角色表权限表用户角色表关系注解ManyToMany 角色权限表 接口开发UserControllerUserServiceUserServiceImplUserRepository 问题解决update 更新问题懒加载问题JSON 循环依赖问题 根据上一小结对表的设计&#xff0…

逻辑回归正则化

逻辑回归正则化在处理具有多个特征且特征可能共线性&#xff08;即特征之间高度相关&#xff09;的数据集特别有用。 下面用一个例子说明什么是正则化&#xff1a; 假设你在厨房准备一顿饭&#xff0c;你的目标是做出美味又不过分油腻的菜肴。 没有正则化的情况&#xff1a;…

【面试】测试/测开(NIG2)

145. linux打印前row行日志 参考&#xff1a;linux日志打印 前10行日志 head -n 10 xx.log后10行日志 tail -n 10 xx.log tail -10f xx.log使用sed命令 sed -n 9,10p xx.log #打印第9、10行使用awk命令 awk NR10 xx.log #打印第10行 awk NR>7 && NR<10 xx.log …

OTP语音芯片与可重复擦写(Flash型)语音芯片:特性比较与应用差异

在嵌入式语音应用中&#xff0c;OTP&#xff08;一次性可编程&#xff09;语音芯片与可重复擦写&#xff08;Flash型&#xff09;语音芯片是两种常见的存储解决方案&#xff0c;它们在特性和应用上存在明显差异。本文将深入比较唯创知音这两类语音芯片的区别&#xff0c;以帮助…

OpenCV图像处理——Python开发中OpenCV视频流的多线程处理方式

前言 在做视觉类项目中&#xff0c;常常需要在Python环境下使用OpenCV读取本地的还是网络摄像头的视频流&#xff0c;之后再调入各种模型&#xff0c;如目标分类、目标检测&#xff0c;人脸识别等等。如果使用单线程处理&#xff0c;很多时候会出现比较严重的时延&#xff0c;…

H3C ER G2系列路由器信息泄露漏洞

H3C ER G2系列路由器信息泄露漏洞 免责声明漏洞描述漏洞影响漏洞危害漏洞页面漏洞复现1. 构造poc2. 发生数据包&#xff0c;获取密码3. 登录系统 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地提高网络安全意识和技术水平。 任何人不得利用该文章…

mac电脑html文件 局域网访问

windows html文件 局域网访问 参考 https://blog.csdn.net/qq_38935512/article/details/103271291mac电脑html文件 局域网访问 开发工具vscode 安装vscode插件 Live Server 完成后打开项目的html 右键使用Live Server打开页面 效果如下&#xff0c;使用本地ip替换http://12…

利用高级 CSPM 应对现代攻击

混合云和多云环境的快速增长造成了跨架构的复杂性&#xff0c;使得人们很难清楚、完整地了解技术堆栈中的各种平台。最近云攻击和破坏的激增引起了人们对团队应如何有效地保护和运行云中的应用程序的关注。 因为错误配置是云环境中安全威胁的首位&#xff0c;并且是基于云的攻…

cfa一级考生复习经验分享系列(四)

备考CFA一级满打满算用了一个多月&#xff0c;每天八个小时以上。可能如果仅以通过为目标的话完全不用这样&#xff0c;看过太多类似于只看了一周就通过了考试又或是放弃了好几门飘过了考试的情况&#xff0c;我觉得这是不正确的考试状态&#xff0c;完全不必惊叹&#xff0c;踏…

学生护眼灯最好是哪一款?考研受欢迎的护眼台灯推荐

当前我国近视防控面临严峻局面&#xff0c;数据显示&#xff0c;我国近视发病率比较高&#xff0c;2012年在我国5岁以上总人口中&#xff0c;近视的人数在4.5亿人左右:到2050年&#xff0c;全世界每十个人中就有一个人患有近视&#xff0c;而这其中1/3将会是中国人。世界卫生组…

【Qt QML入门】Button

Button表示一个推按钮控件&#xff0c;用户可以按下或单击它。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: truetitle: qsTr("Hello World")Button {id: btnwidth: 200height: 100anchors.centerIn…

10-索引-索引二分-H 指数 II

这是索引二分的第十篇算法&#xff0c;力扣链接 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数&#xff0c;citations 已经按照 升序排列 。计算并返回该研究者的 h 指数。 h 指数的定义&#xff1a;h 代表“高引用次数”&am…

MIT_线性代数笔记:第 17 讲 正交矩阵和施密特正交化

目录 正交向量 Orthonormal vectors标准正交矩阵 Orthonormal matrix标准正交列向量的优势 Orthonormal columns are good施密特正交化 Gram-Schmidt 本讲我们完成对“正交”的介绍。Gram-Schmidt 过程可以将原空间的一组基转变为标准正交基。 正交向量 Orthonormal vectors 满…

VHDL实验:基于有限状态机实现秒表

题目要求&#xff1a; 利用有限状态机实现实现一个具有启动、停止、清零功能的秒表&#xff0c;显示格式&#xff1a;分&#xff1a;秒&#xff1a;十分秒。启动、停止、清零由一个按键控制&#xff0c;按键按下时&#xff0c;功能按启动、停止、清零顺序循环。 思路分析&…