open3d可视化窗口中旋转点云并保存为ply或pcd文件

open3d中读取点云之后,在可视化窗口中任意视角旋转点云,旋转之后的点云都无法直接保存为ply或者pcd文件。举个例子,下面图片中我想将正视角拍摄的树点云镜像翻转,保存翻转之后的点云为ply文件

图一, 正视角点云
图二, 镜像旋转之后的点云
接下来说如何操作
open3d打开点云文件并可视化,在可视化窗口中任意旋转点云,比如我想得到镜像翻转的点云,我就对源点云镜像旋转。然后在可视化窗口中点击P键,这里P键为可控组件,目的是保存旋转之后的视角参数json文件,打开json文件你会看到里面有个extrinsic参数,为4×4矩阵,这个矩阵就是我们需要的,将此矩阵作为旋转平移矩阵,对源点云进行变换

import open3d ad 03d
import copy

pcd = o3d.io.read_point_cloud('E:/py-pcd/dianyunxia/crop/crop22_filter.ply')
param = o3d.io.read_pinhole_camera_parameters('E:/py-pcd/ScreenCamera_2022-04-28-09-10-49.json')
pcd_temp = copy.deepcopy(pcd)
params =  param.extrinsic
pcd_temp.transform(params)
o3d.io.write_point_cloud("E:/py-pcd/dianyunxia/crop/crop33_temp.ply", pcd_temp)
o3d.visualization.draw_geometries([pcd_temp])

运行完这段代码,可视化变换之后的点云时结果如下
图三, 代码运行之后的点云这与我们想得到的镜像翻转点云不同,所以只需要在最初操作的时候在可视化窗口中将源点云旋转到图三点云视角,并按P键保存json文件,之后重新运行代码,结果就会变成图二镜像翻转的点云,并且可以进行保存

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值