好的平面设计灵感网站,天津网站建设方案报价,软件网站开发市场前景,天津百度推广开户pclpy 窗口可视化多个点云 一、算法原理二、代码三、结果1.可视化结果 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理
原理看一下代码写的很仔细的。。目前在同一个窗口最多可视化两个点云。。
二、代码
from pclpy import pcldef CloudShow(cloud1, cloud2):Args:在一个窗口可视化多个点云cloud1: 点云数据1cloud2: 点云数据2viewer pcl.visualization.PCLVisualizer(viewer) # 建立可刷窗口对象 窗口名 viewerv0 1 # 设置标签名0, 1标记第一个窗口viewer.createViewPort(0.0, 0.0, 0.5, 1.0, v0) # 创建一个可视化的窗口viewer.setBackgroundColor(0.0, 0.0, 0.0, v0) # 设置窗口背景为黑色single_color pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud1, 255.0, 0, 0.0) # 将点云设置为红色viewer.addPointCloud(cloud1, # 要添加到窗口的点云数据。single_color, # 指定点云的颜色sample cloud1, # 添加的点云命名v0) # 点云添加到的视图v1 2 # 设置标签名2代表第二个窗口viewer.createViewPort(0.5, 0.0, 1.0, 1.0, v1) # 创建一个可视化的窗口viewer.setBackgroundColor(255.0, 255.0, 255.0, v1) # 设置窗口背景为白色single_color pcl.visualization.PointCloudColorHandlerCustom.PointXYZ(cloud2, 0.0, 255.0, 0.0) # 将点云设置为绿色viewer.addPointCloud(cloud2, # 要添加到窗口的点云数据。single_color, # 指定点云的颜色sample cloud2, # 添加的点云命名v1) # 点云添加到的视图# 设置点云窗口可移除对点云可视化没有影响viewer.setPointCloudRenderingProperties(0, # 设置点云点的大小1, # 点云像素sample cloud1, # 识别特定点云v0) # 在那个窗口可视化viewer.setPointCloudRenderingProperties(0, # 设置点云点的大小1, # 点云像素sample cloud2, # 识别特定点云v1) # 在那个窗口可视化viewer.addCoordinateSystem(1.0) # 设置坐标轴 坐标轴的长度为1.0# 窗口建立while not viewer.wasStopped():viewer.spinOnce(10)if __name__ __main__:# 读取一个点云cloud1 pcl.PointCloud.PointXYZ()reader pcl.io.PCDReader() # 设置读取对象reader.read(res/table_scene_lms400.pcd, cloud1) # 读取点云保存在cloud中# 读取一个点云cloud2 pcl.PointCloud.PointXYZ()reader pcl.io.PCDReader() # 设置读取对象reader.read(res/table_scene_lms400.pcd, cloud2) # 读取点云保存在cloud中CloudShow(cloud1, cloud2)三、结果
1.可视化结果 四、相关数据
测试数据链接https://pan.baidu.com/s/1am-4qlxuX_l6uoDeIbpPrA 提取码ffs2
五、问题与解决方案
1.问题 2.解决
报错原因:添加到可视化窗口的的点云名重复
解决:更改点云名在窗口的名即可