这个open3d.utility.Vector3dVector()方法可以直接将xyz的点云numpy数据赋值给点云对象的points属性,报错RuntimeError查了有人说是numpy库的版本太高,调整为低版本即可,调整后还是同样报错,后发现是kepoint3d的维度为 [24,4], 如下:
把kepoint3d删掉最后一列即可:
kepoint3d = reader.get_Keypoints3d(0, keypoint_type='smpl')#[24,4]
kepoint3d = np.delete(kepoint3d, 3, axis=1)#[24,3]
axis表示做删除操作的轴:
axis = 0, 表示删除数组的行;
axis = 1, 表示删除数组的列,上述则为删除数组索引为3的列;
axis = None:表示把数组按一维数组平铺在进行索引删除;