Python之Trimesh库的使用方式
作者:BTWBB
这篇文章主要介绍了Python之Trimesh库的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python Trimesh库的使用
Trimesh是一个纯Python(2.7-3.5+)库,用于加载和使用三角形网格。
该库的目标是提供一个功能齐全、经过良好测试的Trimesh对象,允许简单的操作和分析,风格与Shapely库中的Polygon对象相同。
下面是一些相关的使用方法!
模型加载
mesh = trimesh.load(obj_path)
vertices和faces输出
v = mesh.vertices f = mesh.faces #这样得到的v,f格式是trimesh 内置的格式,不能直接用于其它计算,需要转换为numpy v1 = np.array(v) f1 = np.array(f)
vertices和faces转化为模型并显示
obj = trimesh.Trimesh(vertices = v1, faces = f1) obj.show() #然后点击a展示坐标轴,w只展示模型线条
采样表面点并计算最近点
""" tgt_mesh:采样的mesh sampled_points_num:采样点数目 gt_surface_pts:采样点坐标 face_index:采样点对应的face索引 """ gt_surface_pts, face_index = trimesh.sample.sample_surface_even(tgt_mesh, sampled_points_num) """ src_mesh:目标的mesh gt_surface_pts:要计算最近点的点 pred_surface_pts:得到的在三角面片上的最近点 dist_pred_gt:点到最近三角面片的距离 triangle_id:最近三角面片的索引 """ pred_surface_pts, dist_pred_gt, triangle_id = trimesh.proximity.closest_point( src_mesh, gt_surface_pts)
用齐次变换矩阵变换网格
# matrix((4,4)float) -齐次变换矩阵 mesh = trimesh.load(obj_path) mesh = mesh.apply_transform(matrix)
其他的Trimesh函数详解及使用方法可查询官网!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。