C#下将点云数据保存为PLY格式

2023-12-27 22:28

本文主要是介绍C#下将点云数据保存为PLY格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前没有找到C#下将点云数据保存为PLY格式的库,查看了一下PLY格式,所以自己写了个方法实现点云数据保存PLY格式 

       public static string SavePointCloudToPLY(string No, float[] x, float[] y, float[] z){ string result = "";Task.Run(() =>{try{//生成3d模型string Dir1 = DateTime.Now.ToString("yyyy-MM-dd");string Dir2 = DateTime.Now.ToString("yyyy-MM-dd HH");string PreName = DateTime.Now.ToString("yyyy-MM-dd HHmmss");string ImageDir = $@"{AppDomain.CurrentDomain.BaseDirectory}Logs\Camera3DFile\{Dir1}\{Dir2}\";if (!Directory.Exists(ImageDir)){Directory.CreateDirectory(ImageDir);}string imageFile = $@"{ImageDir}{No}_{YitIdHelper.NextId()}.ply";StringBuilder stringBuilder = new StringBuilder();stringBuilder.Append("ply\n");stringBuilder.Append("format ascii 1.0\n");stringBuilder.Append($"element vertex {x.Length}\n");stringBuilder.Append("property float x\n");stringBuilder.Append("property float y\n");stringBuilder.Append("property float z\n");stringBuilder.Append("end_header\n");for (int i = 0; i < x.Length; i++){stringBuilder.Append($"{x[i]} {y[i]} {z[i]}\n");}File.WriteAllText(imageFile, stringBuilder.ToString()); }catch (Exception ex){Log.Logger.Error($" 保存点云出现异常 {ex.Message}");result = "Error";}});return result;}

 下面是将LMI gocator2350的点云数据保存为PLY

   public static string SavePointCloudToPLY(string No, SurfacePoint[] sfp){string result = "";Task.Run(() =>{try{  string Dir1 = DateTime.Now.ToString("yyyy-MM-dd");string Dir2 = DateTime.Now.ToString("yyyy-MM-dd HH");string PreName = DateTime.Now.ToString("yyyy-MM-dd HHmmss");string ImageDir = $@"{AppDomain.CurrentDomain.BaseDirectory}Logs\Camera3DFile\{Dir1}\{Dir2}\";if (!Directory.Exists(ImageDir)){Directory.CreateDirectory(ImageDir);}string imageFile = $@"{ImageDir}{No}_{YitIdHelper.NextId()}.ply";StringBuilder stringBuilder = new StringBuilder();stringBuilder.Append("ply\n");stringBuilder.Append("format ascii 1.0\n");stringBuilder.Append($"element vertex {sfp.Length}\n");stringBuilder.Append("property float x\n");stringBuilder.Append("property float y\n");stringBuilder.Append("property float z\n");stringBuilder.Append("end_header\n");for (int i = 0; i < sfp.Length; i++){stringBuilder.Append($"{sfp[i].x} {sfp[i].y} {sfp[i].z}\n");}File.WriteAllText(imageFile, stringBuilder.ToString());}catch (Exception ex){Log.Logger.Error($" 保存点云出现异常 {ex.Message}");result = "Error";}});return result;}

产生一个随机点云数据,并用Open3D显示如下效果

这篇关于C#下将点云数据保存为PLY格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/544449

相关文章

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

Mysql如何将数据按照年月分组的统计

《Mysql如何将数据按照年月分组的统计》:本文主要介绍Mysql如何将数据按照年月分组的统计方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql将数据按照年月分组的统计要的效果方案总结Mysql将数据按照年月分组的统计要的效果方案① 使用 DA

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,