深度图生成点云的再探索—ubuntu18.04下pcl的替代方法

一年多以前使用python的pcl库,实现过将深度图转换为点云。这次研究过程中再次想使用的时候发现ubuntu18.04默认安装的是pcl1.8,而python-pcl需要的是pcl1.7,搞了一下午就是不能匹配上。于是退而求其次,发现了pclpy这个库。

https://github.com/davidcaron/pclpy

安装pclpy的命令

conda install -c conda-forge -c davidcaron pclpy

貌似只支持conda安装,不支持pip安装。目前这个库在ubuntu和windows下都可以使用,支持python3.6、3.7、3.8。

而从深度图生出点云,之前的博客里也有,这里附上pclpy这个库的用法以及主要部分的代码

from pclpy import pcl

#depth是深度图,RGB分别是彩色图的三通道
for m in range(0,len(depth)):
    for n in range(0,len(depth[0])):
        d = depth[m][n]
        if d == 0:
            pass
        else:
            z = float(d) #如果从深度的png图读入,感觉不需要像很多教程那样子 1000/d 
            x = (n-cx_d) * z / fx_d
            y = (m-cy_d) * z / fy_d
   
            xyz_point = [x,y,z]
            rgb_point = [R[m][n], G[m][n], B[m][n]]
            xyz.append(xyz_point)
            rgb.append(rgb_point)
xyz = np.array(xyz)
rgb = np.array(rgb)
#点云写入pclpy库下的格式
cloud = pcl.PointCloud.PointXYZRGBA.from_array(xyz, rgb)
writer = pcl.io.PCDWriter()
writer.writeBinary('name.pcd', cloud)

然后再说一个问题,pclpy的最新版本把点云显示部分的函数删掉了,也是一些不兼容的问题。这里推荐安装cloudcompare软件,安装完了以后直接将生出的点云拖进去就能显示。

cloudcompare安装

sudo snap install cloudcompare

sudo snap refresh --edge cloudcompare

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值