对点云进行空间随机变换

最近做项目要自己制作数据集,需要对点云快进行随机变换然后用变换后的三维点云进行配准,进行随机变换代码如下

#将ply文件进行随机转换
import numpy as np
import pcl
import pcl.pcl_visualization
import open3d as o3d
##定义旋转和平移变换矩阵
R = np.array([[0.773231700000000,-0.186915900000000,0.605949800000000],[0.236571600000000,0.971611600000000,-0.00217010000000000],[-0.588342200000000,0.145028500000000,0.795499900000000]])
T = np.array([[-0.106541700000000],[-0.421560900000000],[1.08723810000000]])
#######导入点云数据
pc = pcl.load("1_bone1.ply")
##点云格式和数组的相互转换
pc_array = pc.to_array()##点云格式转化为数组
mc = pcl.PointCloud(pc_array)##数组转化为pcl格式点云数据
##对点云进行空间变换
bc_array = (np.dot(R,pc_array.T)+T)
#####将变换后的数组存为点云格式
bc = pcl.PointCloud(np.array(bc_array.T,dtype=np.float32))
######输出为ply文件
ply_filename ="bone1.ply"
pcl.save(bc, ply_filename)
visual = pcl.pcl_visualization.CloudViewing()##建立坐标系
visual.ShowMonochromeCloud(pc)##打印点云
visual.ShowMonochromeCloud(bc)
flag = True
while flag:
    if visual.WasStopped() == True:
        flag = False
        break

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值