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显示如下效果

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

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

相关文章

基本运算器实验静态随机存储器实验

1.1 基本运算器实验 1. 实验记录 ①运算结果 首先按照实验指导书进行连线&#xff0c;然后打开试验箱电源&#xff0c;把A&#xff0c;B两个数存到寄存器中&#xff0c;然后改变s3 s2 s1 s0 的值&#xff0c;产生脉冲&#xff0c;观察对应的数据总线上的值以及两个标志位。 …

机器学习分类模型

机器学习常见分类模型及特点 机器学习常见分类模型优缺点 决策树模型 决策树&#xff08;Decision Tree&#xff09;是一类常见的机器学习方法&#xff0c;可应用于分类与回归任务&#xff0c;这里主要讨论分类决策树。决策树是基于树结构来进行决策的。下图是使用决策树来决定…

分布式技术之分布式发布订阅通信

文章目录 什么是发布订阅&#xff1f;发布订阅的原理Kafka 发布订阅原理及工作机制 发布订阅的应用 什么是发布订阅&#xff1f; 发布订阅的三要素是生产者、消费者和消息中心&#xff0c;生产者负责产生数据放到消息中心&#xff0c;消费者向消息中心订阅自己感兴趣的消息&am…

【详解】KMP算法——每步配图让你打穿KMP

介绍 什么是KMP算法&#xff1a; KMP算法主要运用串的模式匹配中&#xff08;简单来说就是在s串中找到一个与t串相等的子串&#xff0c;称为模式匹配&#xff09;例如s为abcdef&#xff0c;t为bcd&#xff0c;那么就是在s中找到bcd&#xff0c;并返回其在s中的首下标&#xf…

智慧园区物联综合管理平台基础功能简述

设备建模 平台支持设备建模功能, 用户可以根据业务的需要定制设备模型; 针对不同行业、 不同类型的终端进行建模和标准化, 模型包括设备基本信息和业务信息(包含属性、 事件、 服务), 并提供裸数据到标准模型的编解码转换能力内置常规设备模型模板, 支持自定义模板, 具…

如何正确看待养老金账户抵税

如何正确看待养老金账户抵税 一. 前言 ​ 最近国家推出了养老金抵税政策&#xff0c;核心条款为&#xff1a; 你存一笔钱到你的个人养老金账户&#xff0c;例如1000元&#xff1b;每年存入金额最高为12000元在税务结算时&#xff0c;这1000元会按照你的个人所得税税率返还给…

(JAVA)-(网络编程)-初始网络编程

网络编程就是在通信协议下&#xff0c;不同的计算机上运行的程序&#xff0c;进行的数据传输。 讲的通俗一点&#xff0c;就是以前我们写的代码是单机版的&#xff0c;网络编程就是联机版的。 应用场景&#xff1a;即时通信&#xff0c;网游对战&#xff0c;金融证券&#xf…

arm day7

开关中断控制 main.c #include "key_it.h" #include "uart.h" void delay(int ms) {int i,j;for(i0;i<ms;i){for(j0;j<2000;j);} }int main() {key2_it_config();key1_it_config();key3_it_config();all_led_init();char buf[128];gets(buf); whil…

Android APK未签名提醒

最近新建了一个项目&#xff0c;在build.gradle中配置好了签名&#xff0c;在执行打包的时候打出的包显示已签名&#xff0c;但是在上传市场的时候提示未签名。于是排查了好久&#xff0c;发现在build.gradle中配置的minsdk 24&#xff0c;会导致不使用V1签名&#xff0c;于是我…

Kubernetes技术与架构-集群管理

Kubernetes技术与架构提供支撑工具支持集群的规划、安装、创建以及管理。 数字证书 用户可以使用easyrsa、openssl、cfssl工具生成数字证书&#xff0c;在kubernetes集群的api server中部署数字证书用于访问鉴权 资源管理 如上所示&#xff0c;定义一个服务类service用于负…

iptables防火墙(二)

目录 1、SNAT策略及应用 1.1、SNAT 策略概述 1.2、SNAT 策略的应用 2、DNAT 策略及应用 2.1、DNAT 策略概述 2.2、DNAT 策略的应用 3、规则的导出、导入 3.1、规则的备份及还原 3.2、使用 iptables 服务 4、使用防火墙脚本 4.1、防火墙脚本的构成 &#xf…

Python新姿势:用魔法方法玩转对象

文章目录 前言1\. 对象构建2\. 对象属性访问3\. 对象比较4\. 对象输出5\. 对象运算6\. 总结Python技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Python副业兼职与全职路线 前言 Python中魔法方法&a…

百兆集成RJ45连接器电路设计原理

华强盛电子导读&#xff1a;HR911105A-H1159A01A-GY百兆网口带变压器原理 百兆集成RJ45连接器电路设计原理涉及到网络通信和电子工程领域。RJ45连接器是一种常见的网络连接器&#xff0c;广泛应用于以太网和其他网络通信中。 以下是百兆集成RJ45连接器电路设计的基本原理&…

C语言中的goto语句:使用、争议与最佳实践

各位少年&#xff1a; 引言&#xff1a; 在C语言编程中&#xff0c;goto语句是一个历史悠久且颇具争议的控制流结构。作为无条件跳转指令&#xff0c;它允许程序执行从当前点直接跳转到同一函数内的任意位置&#xff0c;由一个标签&#xff08;label&#xff09;来指定目标。尽…

冠赢互娱基于 OpenKrusieGame 实现游戏云原生架构升级

作者&#xff1a;力铭 关于冠赢互娱 冠赢互娱是一家集手游、网游、VR 游戏等研发、发行于一体的游戏公司&#xff0c;旗下官方正版授权的传奇类手游——《仙境传奇》系列深受广大玩家们的喜爱。基于多年 MMORPG 类型游戏的自研与运营经验&#xff0c;冠赢互娱正式推出了 2D M…

【数据结构】快速排序(4种方式实现)

前言&#xff1a;前面我们学习了几种相对比较简单的排序&#xff0c;今天我们要一起学习的是快速排序&#xff0c;我们将通过四种方式来模拟实现快排。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:数据结构 &#x1f448; &#x1f4a…

spring核心技术控制反转IoC详细使用教程包含例子

demo1: 初识IoC 创建对象: 传统方式 new 关键字 // 启动: 打开工程 =》idea . => 右键 MyTest1.java启动 =》 run // . // ├── main // │ ├── java // │ │ └── com // │ │ └── ahuang // │ │ ├── dao // │ │ …

java之树筛选

树结构&#xff1a; Data public class TreeNode {/*** 主键*/private String id;/*** 名称*/private String name;/*** 父节点id 最上层的父节点为0*/private String parentId;private List<TreeNode> children; } 方法1&#xff1a; public List<TreeNode> fi…

OpenCV(Python)基础—9小时入门版

OpenCV(Python)基础—9小时入门版 # # Author : Mikigo # Time : 2021/12/1 # 一、一句话简介 OpenCV (Open Source Computer Vision Library) 是用 C 语言编写&#xff0c;提供 Python、Java 等语言 API的一个开源计算机视觉库。 二、安装 1、Debian 系使用 apt 安装 O…

Innosetup 调用c# dll 和 c# dll的函数导出

目标需求&#xff0c;基于现在安装包脚本。需要在用户安装和卸载成功时。进行数据记录,所以需要调用c#dll 主要涉及到的知识点 需要理解脚本的文件使用机制脚本的文件dll加载&#xff0c;和dll的调用c# dll的制作&#xff0c;和工具的使用 下面具体介绍 脚本的文件dll加载&…