python 把txt文件转化为pcd文件并用open3D可视化

python 把txt文件转化为pcd文件并用open3D进行可视化

最近在弄3D点云的一些东西,遇到一个问题:很多数据集给的点云数据都是txt格式的,但是在模型上用到的数据集基本是pcd格式!找了很多方法都没有得到解决,后来我查看了pcd文件的格式说明(点击查看pcd文件格式)然后思考以前编写的c、java、py等编程语言文件还有描述文件json等甚至一张图片都可以看作是文本文件,只是尾缀不同加上里面设定编码方式编译器就可以解析不同文件,因为pcd文件的各个点的数据都是ASCII编码与txt文件相同,(前面说了一大堆废话!!!!)

因此,只要把txt尾缀直接手动更改为pcd即可!!简直无语!

可视化

然后为了验证我的想法,我要把我pcd文件进行点云可视化试试看,网上好多人都是用pcl进行可视化这里附上一段代码:

import numpy as np
import pcl.pcl_visualization
pt = pcl.load("D://code-python//Data//lidar//2094.799809520.pcd")

#转为数组 形如 24000 x 3 
points = pt.to_array()

#但是pcl显示是要 N*4 所以要扩展一列 取一列插入数组使 N*3 变为 N*4
x = points[:,0]
points = np.insert(points,3,x,axis=1)

# 这里对第四列进行赋值,它代表颜色值,根据你自己的需要赋值即可;
points[:, 3] = 255

# PointCloud_PointXYZRGB 需要点云数据是N*4,分别表示x,y,z,RGB ,其中RGB 用一个整数表示颜色;
color_cloud = pcl.PointCloud_PointXYZRGB(points)
visual = pcl.pcl_visualization.CloudViewing()

#窗口名 
visual.ShowColorCloud(color_cloud, b'sta')

flag = True
while flag:
    flag != visual.WasStopped()

但是!我pip install pcl安装好后,报错说pcl里面没有load这个东西!然后试了各种重装也没办法!不知道有没有人知道怎么解决这个问题!
然后尝试用open3D进行可视化,同样先pip install open3d安装一下包,接着就是卡卡,两句代码显示出点云图!٩(๑>◡<๑)۶

import open3d as o3d

point = o3d.io.read_point_cloud("pcd0100.pcd")

o3d.visualization.draw_geometries([point])

在这里插入图片描述
RGB原图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46088099/article/details/125574775
今日推荐