1 点云缩放

点云缩放是指尺度按比例缩放一定的倍数,点云数量保持不变。点云缩放的方法主要有numpy数组法、open3d缩放函数、open3d投影变换函数。

2 numpy 数组方法

通过将点云数组乘以一个缩放因子来改变大小,同时通过加法运算实现质心平移。

points = points/2.0#缩小到原来的一半
points[:, 0] = points[:, 0] + 20#质心平移到x=20处

3 open3d缩放函数

open3d的缩放函数为scale,包含两个参数。第一个参数是缩放的比例,即放大的倍数。第二个参数是坐标系原点移动到的位置,相当于缩放后的质心朝相反的方向平移相同的尺度。如果设置第二个参数为(40, 0, 0),那么缩放后的点云质心为(-40,0, 0)。

pcd2.scale(2.0, (40, 0, 0))#点云放大两倍,质心平移至(-40, 0, 0)

4、open3d投影变换函数

在点云仿射变换一节(https://blog.csdn.net/suiyingy/article/details/124426323)中介绍过open3d投影变换矩阵,矩阵中包含平移参数和缩放参数,同样也可以达到点云缩放的效果。

T = np.array([[1, 0, 0, 0], [0, 1, 0, 80], [0, 0, 1, 0], [0, 0, 0, 3]])#点云缩小到1/3,质心平移到(0, 80, 0)
pcd3.transform(T)

5 完整示例程序

pcd文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下载。

# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""
import open3d as o3d
from copy import deepcopy
import numpy as npif __name__ == '__main__':file_path = 'rabbit.pcd'pcd = o3d.io.read_point_cloud(file_path)pcd.paint_uniform_color([0.5, 0.5, 0.5])#指定显示为灰色print(pcd)print('原始点云质心:', pcd.get_center())# 采用numpy计算points = np.array(pcd.points)points = points/2.0#缩小到原来的一半points[:, 0] = points[:, 0] + 20#质心平移到x=20处pcd1 = o3d.geometry.PointCloud()pcd1.points = o3d.utility.Vector3dVector(points)pcd1.paint_uniform_color([0, 0, 1])#指定显示为蓝色print('数组平移后点云质心:', pcd1.get_center())# 采用scale函数pcd2 = deepcopy(pcd)pcd2.scale(2.0, (40, 0, 0))#点云放大两倍,质心平移至(-40, 0, 0)pcd2.paint_uniform_color([0, 1, 0])#指定显示为绿色print('scale缩放后点云质心:', pcd2.get_center())# 采用仿射变换T = np.array([[1, 0, 0, 0], [0, 1, 0, 80], [0, 0, 1, 0], [0, 0, 0, 3]])#点云缩小到1/3,质心平移到(0, 80, 0)pcd3 = deepcopy(pcd)pcd3.transform(T)pcd3.paint_uniform_color([1, 0, 0])#指定显示为红色print('仿射变换缩放后点云质心:', pcd3.get_center())# 点云显示o3d.visualization.draw_geometries([pcd, pcd1, pcd2, pcd3], #点云列表window_name="点云缩放",point_show_normal=False,width=800,  # 窗口宽度height=600)  # 窗口高度

6 示例结果

灰色为原图,蓝色为数组缩放结果,绿色为scale缩放结果,红色为投影变换缩放结果。

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

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

点云缩放—python open3d相关推荐

  1. 『OPEN3D』1.1 点云处理 python篇

    目录 1.open3d中的点云IO 2.点云的可视化 3 点云voxel下采样 4. 顶点法线估计 5.最小外界矩 6. 凸包计算 7. 点云距离计算 8. DBSCAN clustering聚类 9 ...

  2. 点云旋转平移(三)—python open3d点云旋转

    点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...

  3. 点云配准(二)— python open3d ICP方法

    上一节中介绍了点云配准的基础知识.本节将采用python open3d来进行点云配准. open3d安装和点云配准介绍,请参考: Open3d读写ply点云文件_Coding的叶子的博客-CSDN博客 ...

  4. 教程:Python Open3d 完成 ICP 点云配准

    Python Open3d 完成 ICP 点云配准 关于Open3d Open3D 是一个在Python和C++平台上的三维数据处理与可视化库.它由 Qian-Yi Zhou,Jaesik Park, ...

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

    点云旋转平移介绍,请参考上一节:点云旋转平移(一)-基础知识介绍_Coding的叶子的博客-CSDN博客. 本节所使用的示例pcd点云文件请参考:pcd格式点云样例文件-深度学习文档类资源-CSDN下 ...

  6. 三维点云质心与三角化 — python open3d

    1 质心介绍 质心概念与重心的计算方式相同.如下所示:                                          (1) 即                           ...

  7. 『OPEN3D』1.3 RGB-D image与点云拼接 python篇

    目录 1 open3d中的IMAGE 1.1 open3d中的image 1.2 open3d中的rgbd image 2 open3d.camera 3 RGBD图像的点云拼接 1 open3d中的 ...

  8. Python+Open3D 解析Velodyne VLP-16激光雷达数据

    Python+Open3D 解析Velodyne VLP-16激光雷达数据 参数简介 数据包介绍 实际数据介绍 坐标转换关系 补偿半径 运行结果 代码 最近在公司搞了搞激光雷达,把代码写一写. 参数简 ...

  9. Python Open3D几何图形 基础篇(三) RGBD图像

    Python Open3D几何图形 基础篇(三) RGBD图像 本文所参考网页: RGBD images - Open3D 0.15.1 documentation Open3D中有一个关于图像的数据 ...

最新文章

  1. Go: 字符串比较的三种方法
  2. 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
  3. SP2-0734: 未知的命令开头 imp scott/... - 忽略了剩余的行。
  4. LOCK - 明确地锁定一个表
  5. php 继承性,php面向对象全攻略 (七) 继承性_php基础
  6. hadoop管理命令——fsck
  7. between and 查询会用到索引吗_这次是真拯救了我,MySQL索引优化,explain讲得非常清楚了...
  8. 并发编程面试题(2020最新版)
  9. 如何让在 LaTeX 中添加脚注,并且文中不出现编号?
  10. python中如何判断词性_Python nltk 英文词性分析
  11. 【嵌入式06】寄存器方式和HAL库方式实现 串口通信“hello windows!”+流水灯
  12. C51语言编程闹钟代码,C51定时闹钟程序
  13. 离散复习资料之一(Warshall算法)
  14. c语言用质因数分解法求最大公约数,分解质因数法求最大公约数(javascrip实现)
  15. 关于Linux mint更换中文字体后全局楷体修改办法
  16. android解决kotlin问题Expecting member declaration
  17. 电源完整性PI原理知识1
  18. mysql5.6 之frm,MYD,MYI,idb,文件说明
  19. Linux下对文件权限的管理
  20. HTB Busqueda WriteUP

热门文章

  1. 2022云计算真题:日志分析服务
  2. 农产品追溯管理平台解决方案
  3. DialogFragment中通过dataBinding绑定View,设置点击事件无效,通过getWindow设置dialog位置和大小无效。
  4. 视频编码之I,P,B帧
  5. iOS和Android的app界面设计规范
  6. 地磁基本知识(四)磁异常的解释及卫星磁测
  7. 中文转拼音开头以及五笔开头
  8. Google Play支付 接入配置
  9. 推荐系统之AFM代码详解
  10. win10系统如何看服务器地址,win10查看电脑DNS服务器地址具体步骤