pytorch3d Meshes类的方法get_bounding_boxes(),offset_verts(), scale_verts_(), update_padded()

1.其中Meshes 类有自带的计算bounding box的方法,如:

mesh.get_bounding_boxes()

2.Meshes类还有计算offset的方法,如通过通过torch.mean计算出中心坐标center后,需要将mesh移动至原点,通过mesh.offset(center)就可以做到。

output_mesh = mesh.offset_verts(offset)

3.而mesh的缩放,可以通过Meshes类中的scale_verts_()或scale_verts()做到,二者的区别是scale_verts_() return self, 而scale_verts()返回mesh,如scale_verts_()用法如下

output_mesh.scale_verts_(scale)

import torch
import pytorch3d.io as IO
from pytorch3d.structures import Meshes

mesh = IO.load_objs_as_meshes([path], device, load_textures=True)
mesh_verts = mesh.verts_padded()
center = torch.mean(mesh_verts, dim=1, keepdim=True).repeat(1, mesh_verts.shape[1], 1)
offset = -1*center.reshape(-1,3)

boxes = mesh.get_bounding_boxes()
    #get_bounding_boxes, [N, 3, 2] return the min and max value [i,j] along the n coordinates axis
distance = torch.abs(boxes[:,:,0] - boxes[:,:,1])
max
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值