目录:

  • 前言
  • 1. open3d.geometry.TriangleMesh
  • 2.例子

前言

再来整一整另一种3d数据。接着上一节的点云2

1. open3d.geometry.TriangleMesh

和点云一样,三角网格也是3d数据的一种表示open3d.geometry.TriangleMesh实现了三角网格的数据结构,三角形网格包含顶点和由顶点索引表示的三角形。网格也可以包含三角形法线、顶点法线和顶点颜色。

我们再来看一看三角网格对象的一些静态字段:
(1)adjacency_list:顶点的邻接表,adjacency_lis[i]表示与顶点i相邻顶点的索引。
(2)textures:纹理图像
(3)vertices:三角网格的顶点,可以转换为numpy数组访问,shape为(num_vertices,3)
(4)vertex_normals:顶点法线,可以转换为numpy数组访问,shape为(num_vertices,3)
(5)vertex_colors:顶点的rgb颜色,可以转换为numpy数组访问,shape为(num_vertices,3),rgb值范围在[0-1]
(6)triangle_uvs:由构成三角形的点的索引表示的UV列表,可以转换为numpy数组访问,shape为(3 * num_triangles, 2)
(7)triangles:可以转换为numpy数组访问,shape为(num_triangles,3),简答来说每一个其中每一行数据就是一个三角形,如triangles[i]表示一个三角形,其中保存的是三个顶点对应的索引
(8)triangle_normals:三角形法线,可以转换为numpy数组访问,shape为(num_triangles,3)

2.例子

如下代码,我们创建一个球体网格,计算顶点法线:

import open3d as o3d
import numpy as npmesh = o3d.geometry.TriangleMesh.create_sphere()
mesh.compute_vertex_normals()
print(mesh)
print("顶点:",np.asarray(mesh.vertices))
print("三角形",np.asarray(mesh.triangles))
print("顶点法线:",np.asarray(mesh.vertex_normals))
o3d.visualization.draw_geometries([mesh])

打印结果如下:

可视化结果如下:

下面我们将代码改进一下,将x值大于0顶点渲染成红色,小于0的渲染成蓝色:

import open3d as o3d
import numpy as npmesh = o3d.geometry.TriangleMesh.create_sphere()
mesh.compute_vertex_normals()
num_vertices=np.asarray(mesh.vertices).shape[0]
print(mesh)
print("顶点:",np.asarray(mesh.vertices))
print("三角形",np.asarray(mesh.triangles))
print("顶点法线:",np.asarray(mesh.vertex_normals))
color=np.zeros((num_vertices,3))
for i in range(num_vertices):if np.asarray(mesh.vertices[i])[0]>0:color[i,0]=1else:color[i,2]=1
mesh.vertex_colors=o3d.utility.Vector3dVector(color)
o3d.visualization.draw_geometries([mesh])

其中o3d.utility.Vector3dVector是用于将numpy数组转换成open3d的数据格式。

可视化结果如下:

3d机器学习open3d学习教程4--三角网格对象TriangleMesh相关推荐

  1. 3d机器学习open3d学习教程3--点云2

    目录: 前言 1.点云裁剪 2.点云边界框 3.凸包 4.DBSCAN 聚类 5.平面分割 隐藏点移除 前言 接着上一节点云1 本节数据地址:链接:https://pan.baidu.com/s/1O ...

  2. Open3d学习计划——4(网格)

    Open3d学习计划--4(网格) 欢迎大家关注"点云PCL"公众号,进入群聊一起学习. open3d有一种被称为TriangleMesh的3d三角网格的数据结构.下面的代码展示了 ...

  3. AutoCAD 2D与3D大师班学习教程 AutoCAD 2D and 3D Masterclass

    用实例和解决问题的方法完成从基础到专业的AutoCAD课程. 你会学到什么 AutoCAD课程包含创建计划和模型的命令和不同方法的详细使用. 本课程包括对AutoCAD中使用的所有命令和工具的详细解释 ...

  4. bullet物理引擎与OpenGL结合 导入3D模型进行碰撞检测 以及画三角网格的坑

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11681069.html 一.初始化世界以及模型 /// 冲突配置包含内存的默认设置,冲突设置. ...

  5. open3d学习教程2--点云1

    目录: 1.open3d介绍 2.点云 2.1 读取,可视化点云 2.2点云体素下采样 2.3点法线估计 2.4点云着色 1.open3d介绍 接着上一节点云pointcloud open3d是一个开 ...

  6. 1000人证明过的3D视觉系统学习教程

    写在前面 我们在「3D视觉从入门到精通」星球里已经为大家梳理了以下一些内容: (一) 3D视觉学习路线 (二)线上视频课程 (三)3D视觉顶会|期刊 (四)精华github资源 (五)往期帖子与问答汇 ...

  7. Zbrush学习笔记七——阵列网格对象、布尔运算、Polypainter、聚光灯

    阵列网格对象  1打开阵列网格,打开Transpose,然后在偏移,缩放,旋转,枢轴等命令下面操作改变位置大小等参数,使用重复参数控制阵列的重复数量.如果需要制作的效果超过命令滑块的极限值,则需要使用 ...

  8. Unity 3D游戏开发学习教程

    用C#用Unity3D制作游戏 你会学到: 您将学习3D游戏开发基础知识,以使用Unity3D引擎推进事物. 到本课程结束时,他们将可以轻松制作任何类型的游戏,无论是3D还是2D MP4 |视频:h2 ...

  9. open3d学习教程1--点云对象PointCloud

    目录: 前言 1. open3d.geometry.PointCloud 前言 点云简单来说就是3d坐标下一个个点组成的数据,每个点可以包含x,y,z,颜色.分类值.强度值.时间等等信息.点云是3d数 ...

最新文章

  1. 助力隐私保护,Cashshuffle之后又一支柱Interwallet正式发布
  2. ExtJs TreePanel 不能加载ashx数据的解决办法
  3. C# TCPClient简单示例
  4. Cesium Vue开发环境搭建
  5. lwip之数据收发流程_1
  6. gunicorn多进程不死_WEB,gunicorn - 无论是多进程、多线程、协程模式,同一个浏览器窗口多个标签页访问同一个url,看上去不会并发的问题...
  7. IOS添加pch预编译文件
  8. Lync Server 2010迁移至Lync Server 2013部署系列 Part18:开启Lync 2013 Mobility
  9. tomcat(14)服务器组件和服务组件
  10. SpringCloud学习之路(一)-简单Demo
  11. c语言怎么写星星代码,C语言打印星星的问题
  12. 三星java3倍拍照手机_全世界拍照最强的两款手机,一个是三星,一个是它
  13. Spring Cache 介绍
  14. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 解决办法
  15. (八)office2016-excel绘制斜线表头 双斜线和三斜线
  16. 计算机主机结构图手画,流程图怎么画简单又漂亮
  17. OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  18. oracle用户删除了可以恢复吗,oracle_oracle误删数据恢复方法小结,如果用户误删/更新了数据后, - phpStudy...
  19. 一些奇奇怪怪小问题汇总
  20. 【转载】单片机入门经验

热门文章

  1. 免密登录远程服务器(SSH)脚本
  2. 行业类别-树形结构(数据字典、参数化,数据库)
  3. 看不了cur文件缩略图文件如何恢复
  4. 分享一个gui或app designer实时显示simulink仿真波形和实时进度的方法
  5. 服务器前置显示屏,服务器和前置机区别 什么是前置服务器
  6. linux安装oracle12C客户端(适用于18C客户端和19C客户端)
  7. 数据仓库架构及模型设计基础
  8. python获取桌面截图
  9. 《Pro ASP.NET Core MVC 2, 7th Edition》翻译计划及章节目录
  10. 在外远程登录公司内网OA系统【内网穿透】