(一)VTK 转换 STL 为 PLY 格式,PCL读取PLY格式

2023-10-27

简介:由于PLY1.12版本IO模块提供了PCD和PLY两种格式的读取接口,因此需要用VTK进行格式转换,完成STL到PLY格式的转换,或掩码图像到PLY格式的转换,然后用PCL进行读取并进行处理。

1、VTK 将STL转换为 PLY格式

void stl2ply()
{
	std::string filename = "P:\\CBCT\\tooth\\upper.stl"; 
	vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
	reader->SetFileName(filename.c_str());
	reader->Update();

	vtkSmartPointer<vtkPLYWriter> plyWriter = vtkSmartPointer<vtkPLYWriter>::New();
	plyWriter->SetFileName("P:\\CBCT\\tooth\\upper1.ply");
	plyWriter->SetInputConnection(reader->GetOutputPort());
	plyWriter->SetFileTypeToASCII();
	plyWriter->SetColorModeToOff();

	plyWriter->Update();
	plyWriter->Write();
	
}

2 、 PCL读取并显示PLY格式文件

int main() 
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

    char strfilepath[256] = "E:\\CBCT\\lower.ply";
    if (-1 == pcl::io::loadPLYFile(strfilepath, *cloud)) {
        cout << "error input!" << endl;
        return 0;
    }

    cout << cloud->points.size() << endl;
    pcl::visualization::CloudViewer viewer("Cloud Viewer");     //创建viewer对象

    viewer.showCloud(cloud);
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    system("pause");
    return 0;
}

3、显示结果

 4、 一直报 [pcl::PLYReader] E:\CBCT\lower.ply:10: property 'list uint8 int32 vertex_index' of element 'face' is not handled 错误,目前还没找到问题出在哪里?不过点云数据应该是读取正确了,下一步把 分割的掩码数据转位点云数据。

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

(一)VTK 转换 STL 为 PLY 格式,PCL读取PLY格式 的相关文章

  • boost::asio + std::future - 关闭套接字后访问冲突

    我正在编写一个简单的 TCP 客户端来发送和接收单行文本 异步操作由 std future 处理 以便于超时阻塞查询 不幸的是 我的测试应用程序在破坏服务器对象时因访问冲突而崩溃 这是我的代码 TCP客户端 hpp ifndef TCPCL
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • Java基础-学习笔记(二)

    2015年最后一天 Java基础 学习笔记 一 中简要介绍了一下Java 从本节开始将较详细记录Java的知识点 1 JDK的目录结构 src zip 核心API所有类的源文件 include 编写JNDI等程序需要的C语言头文件 bin
  • Linux多进程:alarm函数设置定时器

    unsigned int alarm unsigned int seconds 功能 设置定时器 倒计时结束后给当前进程发送SIGALARM信号 seconds 倒计时秒数 为0则定时器无效 取消一个定时器 通过alarm 0 SIGALA
  • python 获取时间(各种格式)

    前置条件 import datetime import time 1 输出格式 年 月 日 时 分 秒 毫秒 curr time datetime datetime now 输出 2 输出格式 年 月 日 时 分 秒 curr time d
  • 嵌入式(数据库开发)

    1 数据库 1 数据库的安装 sudo dpkg i deb 本地 sudo apt get install sqlite3 2 数据库命令 1 系统命令 都以 开头 exit quit table 查看表 schema 查看表的结构 2
  • Springboot整合mybatisPlus开发

    一 MyBatis Plus简介 MyBatis Plus 简称 MP 是一个MyBatis的增强工具 在 MyBatis 的基础上只做增强不做改变 为简化开发 提高效率而生 官网文档地址 https mybatis plus guide
  • 网站搭建 (第19天) 标签功能

    一 前言 在逛开源中国社区的时候 发现每一篇博客下面都有一行文章的标签 大概就是文章中的代码类型以及使用到的模块之类的 如下图 我的开源中国社区地址是 https my oschina net zhenfei 用了一段时间后废弃了 转到了博
  • 计算机核心配件是什么,计算机的核心是什么

    计算机的核心 电脑核心是中央处理器 简称CPU 是一块超大规模的集成电路 是一台计算机的运算核心 Core 和控制核心 Control Unit 功能主要是解释计算机指令以及处理计算机软件中的数据 电脑核心是中央处理器 简称 CPU 是一块
  • Canvas拖动图形效果实现

    前言 最近对于canvas产生了一些兴趣 我天生是对这种视觉的东西感到好奇的 因此投入了一些时间来玩一玩 仿照网上的一个案例实现了一个基于canvas的图形拖动效果 我主要是借鉴了他们的思想 代码部分是自己独立实现的 也因此走了一些canv
  • 【剑指offer】数据结构——链表

    目录 数据结构 链表 直接解 剑指offer 06 从尾到头打印链表 牛客 力扣 剑指offer 24 反转链表 剑指offer 25 合并两个排序的链表 剑指offer 35 复杂链表的复制 剑指offer 52 两个链表的第一个公共结点
  • 情绪因子

    全A情绪指数 市场对大事件的情绪反应 全A情绪指数 在目前已有的情绪指数库上构建出一种能反映市场整体情绪的指标 本文展示了在其构建过程中发现的一些潜在价值以及全A情绪指数是否能对一些重要社会性事件做出反应的研究 一 构建过程 数据样本 雪球
  • 射频百科:什么是相位噪声?及其含义

    前言 在测试信号源 比如 DDS 直接式数字频率合成器 或者PLL 锁相环 时 相位噪声是一个非常关键的参数 一 相位噪声的含义 随着电子技术的发展 器件的噪声系数越来越低 放大器的动态范围也越来越大 增益也大有提高 使得电路系统的灵敏度和
  • HBase总结

    文章目录 一 HBase简介 二 系统原理 2 1 数据模型 2 2 系统架构 2 3 数据读写流程 1 Region寻址 2 写流程 3 读流程 2 4 拆分与合并 1 Region拆分 2 StoreFile合并 2 5 批量导入 三
  • 数据结构与算法(35):骑士周游问题(马踏棋盘算法相关实现代码)

    马踏棋盘算法介绍和游戏演示 马踏棋盘算法也被称为骑士周游问题 将马随机放在国际象棋的8 8棋盘Board 0 7 0 7 的某个方格中 马按走棋规则 马走日字 进行移动 要求每个方格只进入一次 走遍棋盘上全部64个方格 骑士周游问题的解决思
  • 文件服务器帐号切换,云服务器切换账号

    云服务器切换账号 内容精选 换一换 如果您的业务数据同时保存在数据盘和系统盘中 要想实现业务数据跨帐号迁移 需要用到镜像服务的创建整机镜像 共享镜像等功能 本节操作以Windows操作系统为例 为您详细介绍在同一区域内 跨帐号迁移业务数据
  • postman接口关联

    在接口调试中 经常会遇到一个接口需要上一个接口返回数据的情况 如 网站其他操作 需要token鉴权 而token在登录接口的响应数据里 那么postman如何实现接口关联 1 使用tests 取到接口返回的token数据 2 将token设
  • kettle界面语言修改成中文后,重启报错

    今天在设置kettle的界面时 想看看中文是什么样子的 于是就把如图的地方都改成了中文 重启后 kettle启不来了一直报错 java lang ArrayIndexOutOfBoundsException 5 at org pentaho
  • 内网穿透之我用过的

    花生壳 https hsk oray com ngrok https ngrok com ngrok http 3000 natapp https natapp cn natapp authtoken 我的authtoken
  • 常见的操作系统介绍

    一 计算机资源 计算机资源分为两部分 硬件资源 软件资源 硬件 看得见摸得着的设备 软件 一般由研发工程师开发的一些程序 一般会称之为应用软件 问题 为什么在键盘上敲键盘会在屏幕上显示呢 键盘 硬件 gt 驱动 键盘驱动软件 gt 操作系统
  • json数据和对象的区别

    json数据格式和对象的区别 转自https blog csdn net weixin 44721376 article details 115704536 1 JSON JSON 是一种语法 用来序列化对象 数组 数值 字符串 布尔值和
  • (一)VTK 转换 STL 为 PLY 格式,PCL读取PLY格式

    简介 由于PLY1 12版本IO模块提供了PCD和PLY两种格式的读取接口 因此需要用VTK进行格式转换 完成STL到PLY格式的转换 或掩码图像到PLY格式的转换 然后用PCL进行读取并进行处理 1 VTK 将STL转换为 PLY格式 v