open3d,python-pcl,numpy 点云数据格式转换

这篇具有很好参考价值的文章主要介绍了open3d,python-pcl,numpy 点云数据格式转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

open3d,python-pcl,numpy 点云数据格式转换

NumPy 转 open3d.PointCloud

参考: https://www.codenong.com/cs106756630/
numpy转open3D需要借助Vector3dVector函数,这样可以直接赋值与open3d.PointCloud.points,具体操作如下,假设(x, y, z)、(n_x, n_y, n_z)、(r, g, b)分别是一个n*3numpy数组(这三者不一定全部需要),则对于点数,法向量和颜色的转换都可以借助Vector3dVector函数,具体操作如下:文章来源地址https://www.toymoban.com/news/detail-692056.html

import numpy as np
import open3D as o3d
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)
pcd.normals = o3d.utility.Vector3dVector(nxnynz)
pcd.colors = o3d.utility.Vector3dVector(rgb)

open3d.PointCloud 转 NumPy

import numpy as np
import open3d as o3d
# Load saved point cloud and visualize it
pcd_load = o3d.io.read_point_cloud("../xxx.ply")#或 xxx.pcd 等常见格式

# convert Open3D.o3d.geometry.PointCloud to numpy array
xyz_load = np.asarray(pcd_load.points)
o3d.visualization.draw_geometries([pcd_load])

numpy 数组保存为 pcd 文件

import numpy as np
import open3d as o3d
# pointcloud_interest 为 numpy数组
# pointcloud_interest =rays_end_all.numpy()    
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(pointcloud_interest)                
# print("len(pcd.points):",len(pcd.points))#add hxz
o3d.io.write_point_cloud("/home/xx/pointcloud_interest.pcd", pcd)        

python pcl 点云转 numpy

import pcl
import numpy as np
# 读取pcl 格式点云 并转换为 numpy数组
pointcloud_source = pcl.load('xx.pcd')
pointcloud_source_numpy = pointcloud_source.to_array()
# pointcloud_source_numpy = pointcloud_source.to_array()[:, :4]

numpy 转 python pcl点云

import pcl
import numpy as np

# 转换为 pcl 格式点云,输入点云 points_,形状(N,3)
if(0):  # 将 double 转换为 float32_t, 可能需要
        points=np.ones((points_.shape[0],3),np.float32)
        for i in range(points_.shape[0]):
                points[i][0]=points_[i][0]
                points[i][1]=points_[i][1]
                points[i][2]=points_[i][2]        
        pointcloud_trans = pcl.PointCloud(points)# numpy 数组转 pcl                
if(1):        
        pointcloud_trans = pcl.PointCloud(points_)# numpy 数组转 pcl

到了这里,关于open3d,python-pcl,numpy 点云数据格式转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Open3D 点云裁剪(Python版本)

    基于用户给定的多边形区域,来提取区域内所有的点云数据,这个多边形Open3D会通过一个json文件来进行指定。 CropPointCloud.py

    2024年02月13日
    浏览(46)
  • Open3D 点云颜色渲染(Python版本)

    Open3D主要有两种方式来进行点云的颜色渲染,一种是使用PaintUniformColor函数为点云赋单色,第二种则是通过对点云对象的colors数组进行操作来实现,这种方式更为灵活。这里也简单实现一下单色渲染以及随机赋色。 PainPointCloud.py

    2024年02月11日
    浏览(44)
  • 『OPEN3D』1.1 点云处理 python篇

    目录 1.open3d中的点云IO 2.点云的可视化 3 点云voxel下采样 4. 顶点法线估计 5.最小外界矩 6. 凸包计算 7. 点云距离计算 8. DBSCAN clustering聚类 9. RANSAC(Random Sample Consensus)  10. 点云平面分割 11. 隐藏点移除 12.outliers移除 13 最远点采样(Farthest Point Sample) 专栏地址:https://blog.csdn.net/

    2024年02月02日
    浏览(40)
  • Open3D 降采样:让点云数据更加高效

    Open3D 降采样:让点云数据更加高效 点云数据处理是计算机视觉中重要的一项任务,而点云数据本身就非常庞大,需要消耗大量的计算资源进行处理。因此,点云数据的降采样是非常必要的。Open3D 是一个面向三维数据处理的开源库,提供了丰富的点云数据处理工具,其中包括

    2024年02月03日
    浏览(49)
  • Open3D 点云投影到拟合平面:Python 实现详解

    Open3D 点云投影到拟合平面:Python 实现详解 点云是指由大量离散的 3D 点组成的几何图形,常常用于工业检测、三维建模等领域。而拟合平面是指在点云数据中找到一个最适合的平面,该平面能够近似地拟合这些点云数据。将点云投影到拟合平面可以方便地进行分析和处理。本

    2024年02月07日
    浏览(52)
  • 三种点云下采样方法(二)— open3d python

    本文为博主原创文章,未经博主允许不得转载。 本文为专栏《python三维点云从基础到深度学习》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/124017716”。          点云下采样是对点云以一定的采样规则重新进行采样,目的是在保证点云整体几何特征不变的情况

    2023年04月08日
    浏览(51)
  • Open3D点云库(0.16.0)安装配置(Python版本)

    Open3D是一个开源的点云和网格处理库,它支持快速开发处理3D数据的软件。Open3D前端在c++和Python中公开了一组精心挑选的数据结构和算法;后端则是经过高度优化,并设置为并行化。它只需要很少的工作就可以在不同的平台上进行布置,并从源代码编译。它的优秀毋庸置疑,

    2024年02月14日
    浏览(49)
  • 三维点云拟合圆形(附open3d python 代码)

    圆拟合方法可分为以下步骤: 使用  SVD(奇异值分解) 找到平均中心点集的最佳拟合平面。 将均值中心点投影到新的 2D 坐标中的拟合平面上。 使用 最小二乘法 拟合 2D 坐标中的圆并得到圆心和半径。 将圆中心变换回 3D 坐标。现在,拟合圆由其中心、半径和法线向量指定。

    2024年02月06日
    浏览(47)
  • Open3D 点云投影到直线 (python详细过程版)

      直线方程有三种表示法:一般式、点向式、参数式。PCL中统一采用的是点向式,直线的点向式方程为: x − x 0 m = y −

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包