viewer->addLine<pcl::PointXYZRGB> (cloud->points[0], cloud->points[cloud->size() - 1], "line");

  

博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=165

可视化点云法线和其他特征

显示法线是理解点云的一个重要步骤,点云法线特征是非常重要的基础特征,PCLVisualizer可视化类可用于绘制法线,也可绘制表征点云的其他特征,比如主曲率和几何特征。normalsVis函数中的示例代码演示了如何显示点云的法线,如图1所示。

图1 显示点云法线

下面的这行代码放在绘制点云的代码后面,即可实现对点云法线的显示。

viewer->addPointCloudNormals<pcl::PointXYZRGB, pcl::Normal> (cloud, normals, 10, 0.05, "normals");

一旦用户计算得到法线,只需要另外一行程序在视窗中就可以显示这些法线,该显示法线成员方法的参数有法线显示的个数(这里,每十个点显示一个)及每个法线的长度(在这个例子中是0.05),当然用户可以自行调整为这些参数。

绘制普通形状

PCLVisualizer可视化类允许用户在视窗中绘制一般的图元,这个类常用于显示点云处理算法的可视化结果,例如,通过绘制可视化球体包围聚类得到的点云集以显示聚类结果。shapesVis函数的示例代码用于说明添加形状到视窗的实现方法。添加了四种形状:从点云中的第一个点到最后一个点之间的连线、原点所在平面、以点云中第一个点为中心的球体、沿y轴的锥体,如图2所示。

图2 绘制普通形状

绘制形状的示例代码,出现在将点云添加到视窗的示例代码之后。

viewer->addLine<pcl::PointXYZRGB> (cloud->points[], cloud->points[cloud->size() - ], "line");

上面的这行代码用于添加从点云第一个点到最后一个点的连线,绘制点之间连线的方法十分有用,例如,显示两组点云之间的对应点关系时,可方便用户直观的观看点云之间的对应关系。在本例中,线用缺省颜色,用户也可根据自己的要求给线自定义颜色,从点云中一点与其他多个点连接,这种显示方式很常见,也可以绘制多种形状。

viewer->addSphere (cloud->points[], 0.2, 0.5, 0.5, 0.0, "sphere");

上面的这行代码用于添加以点云中第一个点为中心、半径为0.2的球体,同时也可为该球体自定义颜色。

pcl::ModelCoefficients coeffs;
coeffs.values.push_back(0.0);
coeffs.values.push_back(0.0);
coeffs.values.push_back(1.0);
coeffs.values.push_back(0.0);
viewer->addPlane (coeffs, "plane");

上面几行代码,将添加绘制平面。在本例中,我们用标准的平面方程(ax + by + cz + d = 0)来定义平面,这个平面以原点为中心,方向沿Z方向,许多绘制形状的函数都采用这种定义系数的方法来定义形状。

coeffs.values.clear();
coeffs.values.push_back(0.3);
coeffs.values.push_back(0.3);
coeffs.values.push_back(0.0);
coeffs.values.push_back(0.0);
coeffs.values.push_back(1.0);
coeffs.values.push_back(0.0);
coeffs.values.push_back(5.0);
viewer->addCone (coeffs, "cone");

最后,添加锥形,利用模型系数指定锥形的参数。

PCLVisualizer可视化类(3)的更多相关文章

  1. PCLVisualizer可视化类

    PCLVisualizer可视化类 转载自 http://www.cnblogs.com/li-yao7758258/p/6445127.html 如有疑问,请转至该网址留言询问 PCLVisuali ...

  2. PCLVisualizer可视化类(4)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=168 多视口显示 所示,并进行比较分析,利用不同的搜索半径,基于同一点云计算 ...

  3. PCLVisualizer可视化类(1)

    PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线.绘制多种形状和多个 ...

  4. PCLVisualizer可视化类(2)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=163 可视化点云颜色特征 所示,点赋予不同的颜色表征其对应的z轴值不同.PC ...

  5. PCLVisualizer可视化类(5)

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=171 自定义交互 多数情况下,默认的鼠标和键盘交互设置不能满足用户的需求,用 ...

  6. 基于PCL绘制模型并渲染

    博客转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/51321988 前言 抛开算法层面不谈,要利用PCL库中PCLVis ...

  7. PCL可视化显示 直接加载显示pcb文件

    简单可视化类,是指直接在程序中使用,而且不支持多线程. #include<iostream> #include<pcl\point_cloud.h> #include<p ...

  8. [翻译] FastReport Class Hierarchy (FastReport 组件类层次结构)

    "TfrxComponent" is the base class for all FastReport components. Objects of this type have ...

  9. 数据可视化:绘图库-Matplotlib

    为什么要绘图? 一个图表数据的直观分析,下面先看一组北京和上海上午十一点到十二点的气温变化数据: 数据: 这里我用一段代码生成北京和上海的一个小时内每分钟的温度如下: import random co ...

随机推荐

  1. Oracle数据库体系结构(1)整体概述

    oracle数据库的存储结构: 逻辑存储结构:oracle内部的组织和管理数据的方式 物理存储结构:oracle外部(操作系统)组织和管理数据的方式 oracle对逻辑存储结构和物理存储结构的管理是分 ...

  2. 【Flask模板】宏的概念和基本使用

    # 宏:模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量.使用宏的时候,参数可以为默认值.相关示例代 ...

  3. android 电池(三):android电池系统【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/8709838 一.电池系统结构 Android中的电池使用方式主要有三种:AC.USB. ...

  4. 剑指offer之 调整奇数偶数数组位置

    package Problem14; /* * 问题描述: * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位与数组的前半部分,所有偶数位与数组的 * 后半部分 */ publ ...

  5. EntityFramework 学习 一 Entity Framework 查询设计

    First/FirstOrDefault: using (var ctx = new SchoolDBEntities()) { var student = (from s in ctx.Studen ...

  6. TCP和UDP?

    简单讲,TCP是打电话,UDP是发短信.

  7. ubantu16.04

    http://mirror.pnl.gov/releases/xenial/ ubuntu16.04下载地址: 中科大源       http://mirrors.ustc.edu.cn/ubuntu ...

  8. jQuery创建DOM的方法

    jQuery1.4带来了一个全新的便捷地清晰的DOM对象创建方法,在 jQuery 1.4中,我们可以传递一个对象作为第二个参数. 这个参数接受一个属性的集合,这些可以传递给.attr() 方法.此外 ...

  9. 分享知识-快乐自己:FastDFS 上传 java 源码

    FastDFS 上传 java 源码:点我下载源码 首先导入 POM 文件:解决 maven 不能下载 fastdfs-client-java JAR <dependency> <g ...

  10. 利用Hibernate 框架,实现对数据库的增删改查

    增: package com.maya.test; import org.hibernate.*; import org.hibernate.cfg.*; import com.maya.model. ...