三维点云旋转、归一化

1.numpy 归一化

  feature_rot= feature - np.expand_dims(np.mean(feature, axis=0), 0)  # 去中心化
  dist = np.max(np.sqrt(np.sum(feature_rot ** 2, axis=1)), 0)  # 计算到原点的最远距离
  # print('dist:{}'.format(dist))
  feature_rot = feature_rot / dist  # scale  归一化

2.numpy旋转

 theta = np.random.uniform(0, np.pi * 2)
 rotation_matrix = np.array([[1,0,0,0],[0,np.cos(theta), -np.sin(theta),0], [0,np.sin(theta), np.cos(theta),0],[0,0,0,1]])
 # print('rotation_matrix:{}'.format(rotation_matrix))
 features = feature_rot
 features[:, [0, 2]] = features[:, [0, 2]].dot(rotation_matrix)  # random rotation

3.open3d也可以进行,具体参考爆肝5万字❤️Open3D 点云数据处理基础(Python版)_没事就要敲代码的博客-CSDN博客

4.归一化到原点

# 点云归一化,以centroid为中心,半径为1
def pc_normalize(pc):
    l = pc.shape[0]
    centroid = np.mean(pc, axis=0)
    pc = pc - centroid
    m = np.max(np.sqrt(np.sum(pc**2, axis=1)))
    pc = pc / m
    return pc





 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值