(1)点云库处理学习——点云的格式、PCD文件的打开和显示

1、主要参考

(1)格式说明:

点云库PCL学习——点云的格式、PCD文件的打开和显示

ROS知识:点云文件.pcd格式_无水先生的博客-CSDN博客_pcd文件

(2)点云滤波,对nan的滤波

Python点云数据处理(三)滤波与RANSAC分割 - 知乎

(3)点云各类处理

点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除

2、格式说明

2.1直接用notepad++打开pcd文件后如下

 2.2、格式说明

  1. VERSION是指定版本号
  2. FIELDS是指定每一个点所拥有的的维度名字,其它的格式如下
    FIELDS x y z                                # XYZ data
    FIELDS x y z rgb                            # XYZ + colors
  3. SIZE是每个维度占的字节大小,其中(unsigned char/char has 1 byte,unsigned short/short has 2 bytes,unsigned int/int/float has 4 bytesdouble has 8 bytes)
  4. TYPE是每一个维度的类型,其中(I - 表示有符号类型 int8 (char)、int16 (short) 和 int32 (int);U -代表无符号类型 uint8 (unsigned char), uint16 (unsigned short), uint32 (unsigned int);F - 表示浮点类型
  5. COUNT是指 指定每个维度有多少个元素默认情况下,如果 COUNT 不存在,则所有维度的计数都设置为 1。
  6. WIDTH –用点的数量表示点云数据集的宽度。根据是有序点云还是无序点云,WIDTH有两层解释:(我的这个数据应该是有序的

     1)它能确定无序数据集的点云中点的个数(和下面的POINTS一样);

     2)它能确定有序点云数据集的宽度(一行中点的数目)。

  7. HEIGHT –用点的数目表示点云数据集的高度。类似于WIDTH ,HEIGHT也有两层解释:1)它表示有序点云数据集的高度(行的总数);2)对于无序数据集它被设置成1(被用来检查一个数据集是有序还是无序)。
  8. VIEWPOINT是指定数据集中点云的获取视点。VIEWPOINT有可能在不同坐标系之间转换的时候应用,在辅助获取其他特征时也比较有用,例如曲面法线,在判断方向一致性时,需要知道视点的方位,视点信息被指定为平移(txtytz)+四元数(qwqxqyqz)。默认值是:VIEWPOINT 0 0 0 1 0 0 0
  9. POINTS是数据的总点数
  10. DATA是表示数据存储的格式。有ASCII  和 二进制(binary)

       标题最后一行 (DATA) 之后的下一个字节被视为点云数据的一部分,并将被解释为点云数据的一部分。

      

3、点云读取和显示

3.1安装open3d

pip install open3d -i https://pypi.tuna.tsinghua.edu.cn/simple 

3.2 去除Nan后的数据显示

 无效值包括空值和无限值。空值一般用NaN表示。open3d中对应的剔除函数为remove_non_finite_points。当remove_nan为True时,剔除空值。当remove_infinite为True时表示去除无限值。

3.2.1方法一剔除

(1)一开始显示一直有问题,后来看了看是Nan数据引起的,去除以后可以显示

import open3d as o3d
import numpy as np

##--方法(1)去除Nan------------------
path = "D:/RGBD_CAMERA/python_3d_process/1_hezi.pcd"
pcd = o3d.io.read_point_cloud(path)  # path为文件路径
pcd_new = o3d.geometry.PointCloud.remove_non_finite_points(
                        pcd, remove_nan = True, remove_infinite = False)
o3d.visualization.draw_geometries([pcd_new])

 3.2.2方法二剔除

import open3d as o3d
import numpy as np

##--方法(1)去除Nan------------------
# path = "D:/RGBD_CAMERA/python_3d_process/1_hezi.pcd"
# pcd = o3d.io.read_point_cloud(path)  # path为文件路径
# pcd_new = o3d.geometry.PointCloud.remove_non_finite_points(
#                         pcd, remove_nan = True, remove_infinite = False)
# o3d.visualization.draw_geometries([pcd_new])


##--方法(2)去除Nan------------------
path = "D:/RGBD_CAMERA/python_3d_process/1_hezi.pcd"
pcd = o3d.io.read_point_cloud(path)  # path为文件路径
# res = pcd.remove_non_finite_points(True, True)#剔除无效值
pcd = pcd.remove_non_finite_points(True, False)#剔除无效值
o3d.visualization.draw_geometries([pcd])

 3.3 给显示窗口命名和大小设置

(1)测试代码

##--方法(2)去除Nan------------------
path = "D:/RGBD_CAMERA/python_3d_process/1_hezi.pcd"
pcd = o3d.io.read_point_cloud(path)  # path为文件路径
# res = pcd.remove_non_finite_points(True, True)#剔除无效值
pcd = pcd.remove_non_finite_points(True, False)#剔除无效值
o3d.visualization.draw_geometries([pcd],                                    
                                      window_name="窗口名字测试",
                                      point_show_normal=False,
                                      width=800,  # 窗口宽度
                                      height=600)  # 窗口高度

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PCD点云文件处理模型是一种用于处理点云数据的计算机模型。点云是由离散的三维点组成的集合,它可以用来表示三维物体的形状和位置。 PCD点云文件处理模型通常包括以下几个步骤:导入点云数据、预处理、分割、特征提取、分类或识别、导出处理结果。 首先,将PCD点云文件导入到处理模型中,可以使用各种点云或软件实现此步骤。导入后,对点云数据进行预处理,例如去噪、滤波和重采样。这些预处理步骤旨在减少数据噪声和降低数据密度,以提高后续处理的效果。 接下来,进行分割操作,将整个点云分割为不同的子集。这通常通过识别点云中的平面或曲面来实现,可以使用各种分割算法,如基于几何特征或统计学方法的算法。 然后,进行特征提取,目的是从点云中提取有意义和区分度高的特征。常见的特征包括形状描述子、表面法线、曲率等。这些特征可以用于后续的分类、识别或其他应用。 最后,根据具体应用需求,可以进行分类、识别或其他处理任务。分类任务是将点云划分为不同的类别,例如将点云中的物体分类为汽车、行人、建筑物等。识别任务是识别点云中的特定目标,例如在点云中检测和识别交通标志、行人等。 处理完成后,根据应用需求,可以将处理结果导出到PCD或其他格式文件中,以供后续使用或展示。 综上所述,PCD点云文件处理模型提供了处理点云数据的一整套流程和方法,它可以应用于各种领域,如计算机视觉、机器人技术、地理信息系统等。 ### 回答2: PCD点云文件处理模型是指将点云数据进行分析、处理、编辑和可视化的方法和工具。点云数据是由3D激光扫描仪或其他传感器获取到的大量点的集合,代表了物体或场景的表面形状。 PCD点云文件处理模型包括以下几个主要步骤: 1. 数据加载:从PCD文件中读取点云数据,并将其加载到内存中以便后续处理。常用的点云处理,如PCL(Point Cloud Library),提供了API用于加载PCD文件。 2. 数据滤波:对点云数据进行滤波处理,去除噪点和异常点,提高后续处理的准确性。常用的滤波方法包括半径滤波、统计滤波和直通滤波等。 3. 特征提取:通过计算点云数据的几何、颜色和法线等特征,提取出物体或场景的有用信息。常用的特征提取方法包括表面法线计算、曲率计算和轮廓提取等。 4. 数据配准:将多个点云数据进行配准,以便生成更完整的场景模型。常用的配准方法包括ICP(Iterative Closest Point)和非刚体配准等。 5. 数据重建:基于点云数据,进行三维重建和模型生成。常用的重建方法有体素网格化、三角网格化和基于特征的重建等。 6. 数据可视化:将处理后的点云数据以三维图形的形式进行可视化展示,方便用户观察和分析。常用的可视化工具有PCL可视化模块和PointCloudViewer等。 PCD点云文件处理模型的应用非常广泛,包括三维建模、机器人导航、物体识别和虚拟现实等领域。通过有效处理和分析点云数据,可以帮助我们更好地理解和利用三维信息,提高相关应用的效果和性能。 ### 回答3: PCD(Point Cloud Data)是一种用于存储三维点云数据的文件格式,常用于进行三维点云处理和分析。PCD点云文件处理模型是指对PCD文件进行操作和处理的一系列算法和方法。 PCD点云文件处理模型主要包括以下几个步骤: 1. 加载点云:首先,需要将PCD文件加载到内存中,以便进行后续的处理。可以使用特定的或软件来读取和解析PCD文件。 2. 数据预处理:对加载的点云数据进行预处理,以去除无效点、噪声和异常点等。常用的预处理方法包括滤波、去噪和降采样等。 3. 特征提取:对预处理后的点云数据提取相关特征,以便进行后续的分析和识别。特征可以包括几何、表面和局部特征等,如法线、曲率、几何描述子等。 4. 分割和聚类:对点云进行分割和聚类,将点云分成不同的区域或对象。可以使用分割算法来提取出感兴趣的目标区域,如平面、边缘或物体等。 5. 三维重建和建模:根据点云数据进行三维重建和建模,将点云转换为三维模型,以便后续的可视化、分析和应用。可以使用点云配准和融合算法,将多个点云数据拼接成一个完整的三维模型。 6. 其他应用:PCD点云文件处理模型还可以用于其他一些应用,如目标检测和识别、路径规划和导航、虚拟现实和增强现实等。 综上所述,PCD点云文件处理模型是一种用于对PCD点云文件进行操作和处理的方法和算法集合。通过加载、预处理、特征提取、分割和聚类、三维重建和建模等步骤,可以对点云数据进行分析、识别和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值