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()
运行截图