0 情况简介
在利用open3d对点云处理和开发过程中,利用open3d的函数生成了mesh图形,函数语句如下所示:
// generate mesh
mesh = o3d.geometry.TriangleMesh.create_from_point_cloud_ball_pivoting(pcd,o3d.utility.DoubleVector([radius, radius * 1.2]))
对mesh进行可视化
// visualization
o3d.visualization.draw_geometries([mesh], window_name='Open3D downSample', width=800, height=600, left=50,top=50, point_show_normal=False, mesh_show_wireframe=True, mesh_show_back_face=True)
mesh的细节上展示
想借助trimesh库对mesh数据进行进一步处理和可视化,trimesh的使用手册如下:
链接: Trimesh Document
1 遇到问题
此时python版本为3.8.16,当我调用trimesh中view相关函数时,提示我没有导入模块‘pyglet’,这就让我很头都大啊。因为我的环境配置下,是有pyglet库的,而且看网上的介绍也不需要进行额外的import。那么问题出在哪里了?因此,我对pyglet进行了更新,升级到到最新。
升级之后仍无法导入;遂,将其降低为1.2.4版本
降低为1.2.4版本后,报错time模块报错,没有clock函数,头疼;
然后接着安装其他版本的,没有1.8,就安装1.5.22版本,此版本迭代子代比较多,应该比较稳定。
再次运行程序,
// # create the triangular mesh with the vertices and faces from open3d
tri_mesh = trimesh.Trimesh(np.asarray(mesh.vertices), np.asarray(mesh.triangles),vertex_normals=np.asarray(mesh.vertex_normals))
tri_mesh.show()
成功调出所需界面,如下,这个是pyglet调用GL进行的可视化:
3 总结
版本匹配:
项目 | Version |
---|---|
python | 3.8.16 |
open3d | 0.16.0 |
pyglet | 1.5.22 |
后续的操作在本笔记下继续更新。