PCLVisualizer可视化类(2)
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=163
可视化点云颜色特征
多数情况下,点云显示不采用简单的XYZ类型,常用的点云类型是XYZRGB点,也包含颜色数据,除此之外,用户还希望给指定点云定制颜色,以使点云在视窗中比较容易区分,如图1所示,点赋予不同的颜色表征其对应的z轴值不同。PCLVizualizer可根据所存储的颜色数据为点云赋色,或者按照用户自定义的颜色为点云着色。许多设备,比如微软Kinect,可获取带有RGB数据的点云,PCLVizualizer可视化类可使用这种颜色数据为点云着色,rgbVis函数中的代码用于完成这种操作。

图1 可视化带颜色信息的点云
与前面的代码相比,这个代码没有太大的改变。
boost::shared_ptr<pcl::visualization::PCLVisualizer> rgbVis (pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr cloud)
首先,与前面简单示例相比点云类型发生了变化,这里使用的点云带有RGB数据的属性字段,这是比较关键的一点,没有RGB字段的点云(点云的类型不一定必须只限定为点类型PointXYZRGB,只要包括三个颜色分量即可),PCLVisualizer类将不知道该为点云着什么颜色。
pcl::visualization::PointCloudColorHandlerRGB<pcl::PointXYZRGB> rgb(point_cloud_ptr);
其次,设置窗口的背景颜色后,我们创建一个颜色处理对象PointCloudColorHandlerRGB,PCLVisualizer类利用这样的对象显示自定义颜色数据,在这个示例中,PointCloudColorHandlerRGB对象得到每个点云的RGB颜色字段,其他的类似于PointCloudColorHandlerRGB对象有多种应用,在下一个示例中我们将学习另一种着色方法,但是这个处理也可用于其他操作,比如由其他字段映射出来的颜色、或者由几何特征映射出来的颜色,更详细的信息请参照API文档。
viewer->addPointCloud<pcl::PointXYZRGB> (cloud, rgb, "sample cloud");
最后,当我们添加点云的时候,我们可以指定添加到视窗中点云的PointCloudColorHandlerRGB着色处理对象。
可视化点云自定义颜色特征
第三个示例函数是演示怎样给点云着上单独的一种颜色,我们可以利用该技术给指定的点云着色,以使所着色的点云区别与其他点云,如图2所示用户自定义所有点云颜色为绿色,在这个示例中,customColourVis函数中,我们将点云赋为绿色,在这里,我们也设置了较大的点云显示尺寸,以使点云及颜色更明显。

图2 单独一种颜色的点云
与前面情况相同,下面的这段示例代码跟上面那段示例代码没有太大改变。
boost::shared_ptr<pcl::visualization::PCLVisualizer> customColourVis (pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud)
这个示例中所用的点云类型是XYZ类型。在自定义着色处理对象PointCloudColorHandlerCustom中,没有那个点云字段用作颜色字段,不论所用的点云是什么类型,我们都可以为点云着自定义颜色。
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color (cloud, , , );
所以,这里我们需要创建一个自定义颜色处理器PointCloudColorHandlerCustom对象,并设置颜色为纯绿色。
viewer->addPointCloud<pcl::PointXYZ> (cloud, single_color, "sample cloud");

PCLVisualizer可视化类(2)的更多相关文章
- PCLVisualizer可视化类
PCLVisualizer可视化类 转载自 http://www.cnblogs.com/li-yao7758258/p/6445127.html 如有疑问,请转至该网址留言询问 PCLVisuali ...
- PCLVisualizer可视化类(4)
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=168 多视口显示 所示,并进行比较分析,利用不同的搜索半径,基于同一点云计算 ...
- PCLVisualizer可视化类(3)
viewer->addLine<pcl::PointXYZRGB> (cloud->points[0], cloud->points[cloud->size() - ...
- PCLVisualizer可视化类(1)
PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线.绘制多种形状和多个 ...
- PCLVisualizer可视化类(5)
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=171 自定义交互 多数情况下,默认的鼠标和键盘交互设置不能满足用户的需求,用 ...
- 基于PCL绘制模型并渲染
博客转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/51321988 前言 抛开算法层面不谈,要利用PCL库中PCLVis ...
- PCL可视化显示 直接加载显示pcb文件
简单可视化类,是指直接在程序中使用,而且不支持多线程. #include<iostream> #include<pcl\point_cloud.h> #include<p ...
- [翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)
"TfrxComponent" is the base class for all FastReport components. Objects of this type have ...
- 数据可视化:绘图库-Matplotlib
为什么要绘图? 一个图表数据的直观分析,下面先看一组北京和上海上午十一点到十二点的气温变化数据: 数据: 这里我用一段代码生成北京和上海的一个小时内每分钟的温度如下: import random co ...
随机推荐
- .net序列化与反序列化——提供多次存储对象集后读取不完全解决方案
||问题: 文本文档读取序列化文件时只能读取第一次序列化对象或对象集,而多次序列化存到同一个文本文件中不能完全读取.最近做一个简单的学生管理系统,涉及到多次将学生对象序列化后追加存储到同一个文档中.在 ...
- runtime-分类为什么不生成setter和getter
前言 前几天有人问我一个问题:为什么分类不能自动创建get set方法.老实说,笔者从来没有去思考过这个问题.于是这次通过代码实践跟runtime源码来探究这个问题. 准备工作 为了能减少输出类数据的 ...
- 【leetcode刷题笔记】Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
- 利用etcd及confd实现配置自动管理
ETCD etcd 架设etcd集群 静态启动etcd集群需要每个成员在集群中知道另一个成员.在许多情况下,集群成员的IP可能提前未知.在这种情况下,可以使用etcd集群的自动发现服务.一旦etcd集 ...
- 大话设计模式--适配器模式 Adapter -- C++实现实例
1.适配器模式: 将一个类的接口转换为客户希望的另一个接口,使得原来由于接口不能一起工作的那些类一起工作. 适配器模式一般用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况. 适配器模式分 ...
- unity的一些重要技巧(转)【整理他人的东西】
刚开始学习Unity3D时间不长,在看各种资料.除了官方的手册以外,其他人的经验也是非常有益的.偶尔看到老外这篇文章,觉得还不错,于是翻译过来和大家共享.原文地址: http://devmag.org ...
- SpringBoot_异常_01_Caused by: java.lang.BootstrapMethodError: java.lang.NoSuchMethodError
一.异常信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gsonB ...
- 关于VS中包含库、附加包含库、
转载:https://blog.csdn.net/qing101hua/article/details/53841827 VS中C++的包含目录.附加包含目录和库目录和附加库目录的区别 对Visual ...
- java try中包含return语句,finally中的return语句返回顺序
//结论: finally 中的代码比 return 和 break 语句后执行 public static void main(String[] args) { int x=new Test.tes ...
- [原]NYOJ-公约数和公倍数 -40
大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=40 公约数和公倍数 时间限制:1000 ms | 内存限制:65535 KB ...