记录点云操作的时候发生的事情

最近在用SHREC14和13 的数据集,原始数据集的三维模型为OFF格式,为了转为点云走了一些弯路
接下来记录一下最终的代码。

`

STL,PLY,OFF格式相互转换

路径中不能有中文


import open3d as o3d
mesh = o3d.io.read_triangle_mesh("xx.off") #读取.off文件,stl
o3d.io.write_triangle_mesh("xx.ply",mesh) #存储新格式,stl,ply
'''OFF转PLY'''
import trimesh
def to_ply(input_path, output_path, original_type):mesh = trimesh.load(input_path, file_type=original_type)  # read filemesh.export(output_path, file_type='ply')  # convert to ply
to_ply('D:\\SHREC14/3D/M000003.off', 'D:\\SHREC14/test.ply', 'off')

'''读取PLY并保存txt'''def read_ply_cloud(filename):ply_data = PlyData.read(filename)points = ply_data['vertex'].data.copy()print(points.shape)cloud = np.empty([6513005, 3])for i in range(len(points)):point = points[i]p = np.array([point[0], point[1], point[2]])cloud[i] = preturn np.array(cloud)out_arr = read_ply_cloud('D:\点云三维检索\SHREC14/test.ply')

批量操作的方法

import numpy as np
from plyfile import PlyData
import open3d
import osold_names = os.listdir('D:\\SHREC14/OFF')
for old_name in old_names:  # 遍历列表下的文件名input_path='D:\\SHREC14/OFF/'+old_namefile_name, extension = os.path.splitext(old_name)s1 = file_name[-6:]print(s1)output_path='D:\\SHREC14\PLY/'+file_name+'.ply'to_ply(input_path, output_path, 'off')ply_data = PlyData.read(output_path)points = ply_data['vertex'].data.copy()cloud = []for i in range(len(points)):point = points[i]p = np.array([point[0], point[1], point[2]])cloud.append(p)a=np.array(cloud)b=a.shape[0]if b>2055:#因为有的模型转化成的点云数量太少了np.savetxt(r'D:\\SHREC14\TXT/'+file_name+'.txt', a, fmt='%d')

诸君共勉!

OFF转PLY再转TXT相关推荐

  1. python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  2. python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  3. 我的Python脚本——生成任意波形并存为txt

    我的Python脚本--生成任意波形并存为txt 一. 脚本功能 根据采样点数,采样周期数等参数以及波形的数学表达式,生成任意波形 将波形数据转为指定位宽的二进制补码,然后存为txt 绘制原始波形和转 ...

  4. batch批处理程序easyadd——追加单行文本到指定txt文件末尾

    介绍 有时候需要打开记事本在末尾追加文本,如果手动找到txt文件,再打开txt文件,按 ctrl+home 到达文末,才能完成对txt文件的追加,比较繁琐.而且如果txt文件很大(比如词典文件),手动 ...

  5. python读取txt、csv以及xml文件

    1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read():              读取整个文件 * readline(): ...

  6. 如何用python修改pdf内容_如何利用python将pdf文件转化为txt文件?

    https://www.wukong.com/answer/6579491774144708872/?iid=15906422033&app=news_article&share_an ...

  7. python读取整个txt文件-python读取一个目录下所有txt里面的内容方法

    import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文件 ''' # ...

  8. python量化交易之 放量跌到底买入-涨1.1再卖

    import os nZhangTing=0 nEarn=0 nTotalEarn=0 nBuy=0 nSell=0 strBuyDate="" strPrebuyDate=Fal ...

  9. python获取路由器信息_python 3.5实现检测路由器流量并写入txt的方法实例

    前言 本文主要给大家介绍了关于利用python 3.5检测路由器流量并写入txt的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍. 环境交代:win10+python3.6 代 ...

最新文章

  1. 希捷发布CORTX对象存储软件与开源社区,普惠超大规模数据存储
  2. 基于AI探索表观遗传药物发现的化学空间
  3. 适用于微服务架构的Apache Camel
  4. conda安装特定版本的包
  5. C/C++socket send函数MSG_NOSIGNAL
  6. 以 Ext.Net 1.2.0 为例了解网页测试工具 HttpWatch
  7. Writing udev rules
  8. 重置物体的position, rotation, scale,复制物体的组件
  9. excel教程自学网_超实用!良心推荐15个神级自学网站,内容全面质量又高
  10. U大师安装系统后,Chrome主页被7654导航劫持解决方法
  11. 36氪开放日 —— 笔记
  12. 人工智能对智能建筑有哪些影响,智能建筑发展存在哪些问题?
  13. OpenCV 对比度增强
  14. WinXP如何自动清理Temp文件夹
  15. 【2019.05】JS逆向——破解百度翻译参数(sign)爬虫 超级详细
  16. html有序列表设置混合编码,一组你值得拥有的 Markdown 中混用 HTML 案例
  17. 离散数学学习笔记——第二讲——命题逻辑(第二部分)(2.10演绎法推理)
  18. 我的CSDN博客规划说明
  19. 华为软开云5--玩转代码检查
  20. “魔方阵“c语言实现,奇数型

热门文章

  1. JAVA中map转换成实体对象
  2. 1174 -- 正三角形的外接圆面积
  3. Java多线程----java 对象锁(synchronized/lock)
  4. Windows7 IE8华大K宝登入农行网银方法
  5. halcon 区域 inner_rectangle1 smallest_rectangle1 smallest_rectangle2
  6. 2022年期末网页设计作业——如何制作企业网站(html+css制作)
  7. IE7、IE8、IE9、IE10后各版本的更新内容和各版本的差别
  8. 通过js实现在线计算器
  9. 数据挖掘的好书_大数据挖掘分析经典书籍推荐
  10. SAS学习——Base SAS基础