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");

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

最新文章

  1. okhttp封装时,提示 cannot resolve method OkHttpClient setConnectTimeout() 函数
  2. 异步与并行~ReaderWriterLockSlim实现的共享锁和互斥锁
  3. js实现去重字符串
  4. 使用HttpWebRequest发送自定义POST请求
  5. SQL中 EXCEPT、INTERSECT用法
  6. 3.第一个python程序
  7. sqlServer2008 手工注入
  8. 数据结构(Splay平衡树): [NOI2007] 项链工厂
  9. [转] 关于SIGPIPE导致的程序退出
  10. 栈详解及java实现
  11. Linux 定时任务不生效的问题
  12. hive 压缩 差不多出来数据 各种压缩 数据格式
  13. 用junit对java代码进行测试,需要注意
  14. Elasticsearch学习笔记——分词
  15. 解决ubuntu下firefox的flash全屏后不能恢复问题 ZT
  16. Linux 下安装JDK和jmeter 及环境配置记录过程
  17. rsa 加密 pkcs#1格式秘钥的格式化
  18. 【咸鱼教程】TextureMerger1.6.6 三:Bitmap Font的制作和使用
  19. hover()与toggle()
  20. 【jQuery】页面顶部显示的进度条效果

热门文章

  1. 【LeetCode】【数组归并】Merge k Sorted Lists
  2. Docker 单机网络
  3. 《机器学习实战》学习笔记第十一章 —— Apriori算法
  4. EntityFramework 学习 一 Entity Framework结构体系
  5. TF卡
  6. php深入浅出session
  7. django 使用内建过滤器实现文章摘要效果
  8. Sqlte 知识点记录
  9. Spring JdbcTemplate详解(转)
  10. 百度编辑器ueditor的toolbars的各个元素代表的功能说明