python-pcl点云可视化

python-pcl点云可视化

python-pcl实际是C++编译过来的
这里要讲的是可视化,因为在做这个可视化的时候,没有找到很多相关资料,这里记录一下吧
首先,你得安装了这个库,安装这里不多做赘述了,如果你得pycharm能够引用import pcl
说明是成功的

因为python-pcl不像C++的pcl库有比较详细的开发者文档
网上有提供一份简易的文档,我是按照这个文档实现的,他有一个可视化的模块

这里直接上代码吧

# -*- coding: utf-8 -*-
from __future__ import print_function

import numpy as np

import pcl 

import pcl.pcl_visualization as viewer  #引入可视化库

def main():
	#通过pcl.load加载pcd文件
    cloud2 = pcl.load("C:\\Users\\Administrator\\Desktop\\paper\\icp\\cube_filtered.pcd")
    cloud1 = pcl.load("C:\\Users\\Administrator\\Desktop\\paper\\icp\\cube_filtered.pcd")
    cloud2=np.array(cloud2)#这里转换成数组是为了进行一个平移,能够看出来两个点云的差异
    print(cloud2.shape)
   
    for x in range(cloud2.shape[0]):
        cloud2[x]=cloud2[x]+2

    cloud1 = np.array(cloud1)
   
    #如何将数组类型转换成点云所需要的数据类型

    cloud2=pcl.PointCloud(cloud2)
    cloud1=pcl.PointCloud(cloud1)

   
    visualcolor1 = pcl.pcl_visualization.PointCloudColorHandleringCustom(cloud2, 0, 255, 0)
    visualcolor2=pcl.pcl_visualization.PointCloudColorHandleringCustom(cloud1,255,0,0)
    vs=pcl.pcl_visualization.PCLVisualizering
    vss1=pcl.pcl_visualization.PCLVisualizering()#初始化一个对象,这里是很重要的一步
    vs.AddPointCloud_ColorHandler(vss1, cloud1, visualcolor2, id=b'cloud', viewport=0)
    vs.AddPointCloud_ColorHandler(vss1,cloud2,visualcolor1,id=b'cloud1',viewport=0)
    v = True
    while not vs.WasStopped(vss1):
       vs.Spin(vss1)

if __name__ == "__main__":
    main()

运行截图
python-pcl点云可视化_第1张图片

你可能感兴趣的:(可视化)