当前位置: 首页 > news >正文

C# 读取pcd点云文件数据

        pcd文件有ascii 和二进制格式,ascii可以直接记事本打开,C#可以一行行读。但二进制格式的打开是乱码,如果尝试程序中读取,对比下看了数据也对不上。

      这里可以使用pcl里的函数来读取pcd,无论二进制或ascii都可以正确读取,但pcl是C++写的,不太方便使用。我写了个C#的dll文件Q_PclCs.dll,此dll基于pcl 1.13.1版本开发,可以通过引用此dll文件来读取pcd文件,而不需要额外配置其他东西。

     

     文件下载地址

链接:https://pan.baidu.com/s/1dgXmd9VTf3G4ux__-fhtGg 
提取码:vx8u

 使用说明 将这些dll文件都放到你程序的可执行文件目录下,引用Q_PclCs.dll

读取方式

命名空间 Q_PclCs

using Q_PclCs;

PcdReader pcdReader = new PcdReader();

先读点云长度length

int length=pcdReader.GetLength(ofd.FileName);

准备数组存储

                double[] x = new double[length];
                double[] y= new double[length];
                double[] z=new double[length];
                pcdReader.PcdReaderFast(ref x, ref y, ref z);

这样就读出来了

测试程序,可以用vtk展示读出来的图,简单展示下

 测试代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Kitware.VTK;
using Q_PclCs;namespace testCsGetPcd
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();if(ofd.ShowDialog() == DialogResult.OK){PcdReader pcdReader = new PcdReader();int length=pcdReader.GetLength(ofd.FileName);double[] x = new double[length];double[] y= new double[length];double[] z=new double[length];pcdReader.PcdReaderFast(ref x, ref y, ref z);vtkPoints points = new vtkPoints();for (int i = 1; i < length; i++){points.InsertPoint(i, x[i], y[i], z[i]);}vtkPolyData polydata = vtkPolyData.New();polydata.SetPoints(points);vtkVertexGlyphFilter glyphFilter = vtkVertexGlyphFilter.New();glyphFilter.SetInputConnection(polydata.GetProducerPort());vtkPolyDataMapper mapper = vtkPolyDataMapper.New();mapper.SetInputConnection(glyphFilter.GetOutputPort());vtkActor actor = vtkActor.New();actor.SetMapper(mapper);vtkRenderer render = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();render.AddActor(actor);//render.AddActor(scalarBar);//render.SetViewport(0.0, 0.0, 1, 1);render.ResetCamera();this.Refresh();}}}
}

 

相关文章:

C# 读取pcd点云文件数据

pcd文件有ascii 和二进制格式&#xff0c;ascii可以直接记事本打开&#xff0c;C#可以一行行读。但二进制格式的打开是乱码&#xff0c;如果尝试程序中读取&#xff0c;对比下看了数据也对不上。 这里可以使用pcl里的函数来读取pcd&#xff0c;无论二进制或ascii都可以正确读取…...

.NET CORE Api 上传excel解析并生成错误excel下载

写在前面的话&#xff1a; 【对外承接app API开发、网站建设、系统开发&#xff0c;有偿提供帮助&#xff0c;联系方式于文章最下方 】 因业务调整&#xff0c;不再需要生成错误无excel下载&#xff0c;所以先保存代码&#xff0c;回头再重新编辑 #region Excel校验部分if (f…...

数据结构,二叉树,前中后序遍历

二叉树的种类 最优二叉树 最优二叉树画法 排序取最小两个值和&#xff0c;得到新值加入排序重复1&#xff0c;2 前序、中序和后序遍历是树形数据结构&#xff08;如二叉树&#xff09;中常用的遍历方式&#xff0c;用于按照特定顺序遍历树的节点。这些遍历方式在不同应用中有不…...

项目实战笔记2:硬技能(上)

序&#xff1a; 本节串讲了项目管理硬技能&#xff0c;有些术语可以结合书或者网上资料来理解。没有想书上讲的那样一一列举。 做计划 首先强调为什么做计划&#xff1f; 计划就是各个角色协同工作的基准&#xff08;后面做风险监控、进度的监控&#xff09;&#xff0c;贯穿于…...

神经网络基础-神经网络补充概念-59-padding

概念 在深度学习中&#xff0c;“padding”&#xff08;填充&#xff09;通常是指在卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNNs&#xff09;等神经网络层中&#xff0c;在输入数据的周围添加额外的元素&#xff08;通常是零&#xff09;&#xf…...

【开源免费】ChatGPT-Java版SDK重磅更新收获2.3k,支持插件模式、实现ChatGpt联网操作。

everybody 七夕来了还单着么&#xff1f; 一、简介 ChatGPT Java版SDK开源地址&#xff1a;https://github.com/Grt1228/chatgpt-java&#xff0c;目前收获将近2200个star&#x1f31f;。 最新版&#xff1a;1.1.1-beta0 <dependency><groupId>com.unfbx</g…...

情报与GPT技术大幅降低鱼叉攻击成本

邮件鱼叉攻击&#xff08;spear phishing attack&#xff09;是一种高度定制化的网络诈骗手段&#xff0c;攻击者通常假装是受害人所熟知的公司或组织发送电子邮件&#xff0c;以骗取受害人的个人信息或企业机密。 以往邮件鱼叉攻击需要花费较多的时间去采集情报、深入了解受…...

Swift 周报 第三十五期

文章目录 前言新闻和社区五天市值蒸发 2000 亿美元&#xff0c;苹果公司怎么了&#xff1f;在你的 App 中帮助顾客解决账单问题需要声明原因的 API 列表现已推出 提案通过的提案正在审查的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第三十五…...

uni-app + SpringBoot +stomp 支持websocket 打包app

文章目录 一、概述&#xff1a;二、配置&#xff1a;1. 后端配置2. uni-app(app端)3. 使用 一、概述&#xff1a; websocket 协议是在http 协议的基础上的升级&#xff0c;通过一次http 请求建立长连接&#xff0c;转而变为TCP 的全双工通信&#xff1b;而http 协议是一问一答…...

LeetCode--HOT100题(35)

目录 题目描述&#xff1a;23. 合并 K 个升序链表&#xff08;困难&#xff09;题目接口解题思路1代码解题思路2代码 PS: 题目描述&#xff1a;23. 合并 K 个升序链表&#xff08;困难&#xff09; 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合…...

idea插件grep console最佳实践

首发博客地址 https://blog.zysicyj.top/ 参考博客&#xff1a;https://blog.csdn.net/ayunnuo/article/details/123997304 效果 配置 具体颜色 日志级别前景色背景色Error#FF0000#370000Warn#FFC033#1A0037Info#00FFF3无Debug#808080无 本文由 mdnice 多平台发布...

Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)

Android 12 源码分析 —— 应用层 二&#xff08;SystemUI大体组织和启动过程&#xff09; 在前一篇文章中&#xff0c;我们介绍了SystemUI怎么使用IDE进行编辑和调试。这是分析SystemUI的最基础&#xff0c;希望读者能尽量掌握。 本篇文章&#xff0c;将会介绍SystemUI的大概…...

【C#】通用类型转换

【C#】通用类型转换 自动类型转换&#xff08;隐式类型转换&#xff09;强制类型转换&#xff08;显式类型转换&#xff09;通过函数进行转换&#xff08;通过方法进行类型转换&#xff09;使用 as 操作符转换通用类型转换方法实现 数据类型转换就是将数据&#xff08;变量、数…...

传统DNS、负载均衡服务发现框架与专业服务发现框架(Eurek、nacos)分析

1、DNS 服务器 DNS 服务器可以在一定程度上用作服务发现的机制&#xff0c;以下是其冲动服务发现的一些利弊 优势 广泛性&#xff1a; DNS是互联网的标准协议之一&#xff0c;已经广泛地被支持和使用。因此&#xff0c;使用DNS作为服务发现的机制可以借助现有的网络基础设施…...

js中数组常用操作函数

js数组经常会用到&#xff0c;当涉及到 JavaScript 数组的函数&#xff0c;有许多常用的函数可用于对数组进行操作和转换。以下是一些常见的数组函数的讲解 splice() splice() 函数用于修改数组&#xff0c;可以删除、插入或替换数组中的元素。 var fruits [apple, banana,…...

Windows、Mac、Linux端口占用解决

Windows、Mac、Linux端口占用解决 简介 在使用计算机网络时&#xff0c;经常会遇到端口被占用的问题。当一个应用程序尝试使用已经被其他程序占用的端口时&#xff0c;会导致端口冲突&#xff0c;使应用程序无法正常运行。本文将介绍在Windows、Mac和Linux操作系统上解决端口…...

企业文件透明加密软件——「天锐绿盾」数据防泄密管理软件系统

PC访问地址&#xff1a; 首页 一、文档透明加密软件 文档透明加密功能&#xff1a;在不影响单位内部员工对电脑任何正常操作的前提下&#xff0c;文档在复制、新建、修改时被系统强制自动加密。文档只能在单位内部电脑上正常使用&#xff0c;在外部电脑上使用是乱码或无法打…...

Postman接口自动化测试实例

一.实例背景 在实际业务中&#xff0c;经常会出现让用户输入用户密码进行验证的场景。而为了安全&#xff0c;一般都会先请求后台服务器获取一个随机数做为盐值&#xff0c;然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器&#xff0c;后台服务器接到…...

软件团队降本增效-构建人员评价体系

在软件团队中&#xff0c;最大成本往往来自于人力。这是因为软件开发是一项高度技术密集和智力密集的工作&#xff0c;需要研发人员具备较高的专业知识和技能。研发人员的工作状态和主动性对产出和质量具有极大的影响。如果研发人员缺乏积极性和投入度&#xff0c;可能会导致项…...

Python实现SSA智能麻雀搜索算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…...

Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例

Step3-VL-10B部署案例&#xff1a;金融APP界面自动化测试&#xff0c;覆盖85%人工回归用例 1. 项目背景与痛点 金融APP的每一次版本更新&#xff0c;都伴随着一场紧张的回归测试。测试团队需要反复验证登录、转账、理财购买、账单查询等几十个核心功能&#xff0c;确保新代码…...

Qwen3.5-4B-Claude-Opus保姆级教程:Web界面响应延迟归因与优化路径

Qwen3.5-4B-Claude-Opus保姆级教程&#xff1a;Web界面响应延迟归因与优化路径 1. 模型与部署环境概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是基于Qwen3.5-4B的推理蒸馏模型&#xff0c;特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。该…...

MATLAB实战:用BEMD算法分解图像并提取特征(附完整代码)

MATLAB实战&#xff1a;二维经验模态分解(BEMD)在图像特征提取中的创新应用 当我们需要从一张X光片中识别微小病灶&#xff0c;或是从卫星图像中提取城市道路网络时&#xff0c;传统图像处理方法往往力不从心。二维经验模态分解(BEMD)就像给图像做"CT扫描"&#xff0…...

告别PCtoLCD2002!这款单片机调试助手如何用3步搞定OLED汉字显示?

3步解锁OLED汉字显示&#xff1a;新一代嵌入式开发神器实战指南 在嵌入式开发领域&#xff0c;OLED屏幕的汉字显示一直是让开发者头疼的难题。传统方案如PCtoLCD2002等取模软件不仅操作繁琐&#xff0c;生成的代码还需要大量手工调整。如今&#xff0c;一款名为单片机多功能调试…...

建议收藏|盘点2026年顶尖配置的AI论文平台

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文平台&#xff0c;覆盖选题构思、文献分析、内容生成、格式排版四大核心场景&#xff0c;帮你高效搞定论文。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&…...

SDXL 1.0电影级绘图工坊高清图集:1536px输出下4K显示器全屏无像素感展示

SDXL 1.0电影级绘图工坊高清图集&#xff1a;1536px输出下4K显示器全屏无像素感展示 1. 项目简介 SDXL 1.0电影级绘图工坊是一款基于Stable Diffusion XL Base 1.0模型的AI绘图工具&#xff0c;专门为RTX 4090显卡优化设计。这个工具充分利用了4090显卡的24G大显存&#xff0…...

Sqoop1 vs Sqoop2:架构之争与选型指南

Sqoop1 vs Sqoop2&#xff1a;架构之争与选型指南1. 引言&#xff1a;两个版本&#xff0c;一个困惑2. 核心差异&#xff1a;从架构到功能的全面对比2.1 架构对比&#xff1a;客户端 vs 客户端-服务器2.2 功能特性详细对比2.3 安全性对比&#xff1a;Sqoop2的核心优势3. 为什么…...

NaViL-9B一文详解:双GPU显存占用分析、服务重启与端口验证

NaViL-9B一文详解&#xff1a;双GPU显存占用分析、服务重启与端口验证 1. 平台概述 NaViL-9B是由专业研究机构开发的原生多模态大语言模型&#xff0c;具备文本问答和图片理解双重能力。该模型在设计上充分考虑了工程落地需求&#xff0c;特别针对双GPU环境进行了优化适配。 …...

QQ音乐下载的歌曲怎么导出来?分享我的FFMpeg自动化处理脚本(附Win/Mac命令)

用FFMpeg实现QQ音乐文件自动化处理&#xff1a;跨平台脚本全解析 每次从QQ音乐下载的歌曲文件总是带着各种限制——加密格式只能在特定播放器打开&#xff0c;专辑封面无法显示&#xff0c;批量处理更是让人头疼。作为一个整理过上千首音乐文件的资深用户&#xff0c;我摸索出…...

学习如何聚合零样本大型语言模型代理以进行企业披露分类

摘要本文研究一个轻量级训练聚合器是否能够将多样化的零样本大语言模型判断整合为更强的下游信号&#xff0c;用于公司披露分类。零样本大语言模型无需针对特定任务进行微调即可阅读披露文本&#xff0c;但其预测结果常因提示词、推理方式和模型家族的不同而存在差异。我采用一…...