zl程序教程

您现在的位置是:首页 >  后端

当前栏目

点云旋转平移(二)—python open3d点云平移

Python 旋转 点云 Open3D 平移
2023-09-27 14:27:52 时间

本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。

点云旋转平移介绍,请参考上一节:点云旋转平移(一)—基础知识介绍_Coding的叶子的博客-CSDN博客

本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下载

1 python open3d点云平移函数

open3d中点云的平移函数为translate。其函数原型如下所示:

pcd.translate((tx,ty,tz),relative=True)

        当relative为True时,(tx, ty, tz)表示点云平移的相对尺度,也就是平移了多少距离。当relative为False时,(tx, ty, tz)表示点云中心(质心)平移到的指定位置。质心可以坐标可以通过pcd.get_center()得到。

pcd.get_center()

2 示例程序

        注意事项:使用translate进行点云平移后,原始点云数据会发生变化。如果要用到平移之前的点云,那么需要复制一份原始点云进行平移变换。

# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""
from copy import deepcopy
import  open3d as o3d

if __name__ == '__main__':
    file_path = 'rabbit.pcd'
    pcd = o3d.io.read_point_cloud(file_path)
    print(pcd)
    pcd1 = deepcopy(pcd)
    #x方向平移
    pcd1.translate((20,0,0), relative=True)
    pcd2 = deepcopy(pcd)
    #y方向平移
    pcd2.translate((0,20,0), relative=True)
    #z方向平移
    pcd3 = deepcopy(pcd)
    pcd3.translate((0,0,20), relative=True)
    pcd4 = deepcopy(pcd)
    pcd4.translate((20,20,20), relative=True)
    #点云显示
    o3d.visualization.draw_geometries([pcd, pcd1, pcd2, pcd3, pcd4], #点云列表
                                      window_name="点云平移",
                                      point_show_normal=False,
                                      width=800,  # 窗口宽度
                                      height=600)  # 窗口高度

3 平移效果

点云旋转平移(一)—基础知识介绍_Coding的叶子的博客-CSDN博客点云旋转平移基础知识,下一节介绍示例程序。https://blog.csdn.net/suiyingy/article/details/124374486

python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_3d点云 python从三维基础知识到深度学习,将按照以下目录持续进行更新。https://blog.csdn.net/suiyingy/article/details/124017716

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

本文为博主原创文章,未经博主允许不得转载。
本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。