(1):引用:仅仅是简单的显示点云,可以使用CloudViewer类。这个类非常简单易用。但要注意,它不是线程安全的。如果要用于多线程,还要参考PCLVisualizer。

需要注意的是,PointCloud的数据类型要和PCD文件中或者代码中的PointT一致!

并且:CloudViewer除了显示什么也不能干.

显示代码为:

pcl::visualization::CloudViewer viewer ("Cluster viewer");viewer.showCloud(colored_cloud);while (!viewer.wasStopped ()){}

(2):PCLVisualizer详细使用规则

 简单函数解释:
boost::shared_ptr<pcl::visualization::PCLVisualizer> simpleVis (pcl::PointCloud<pcl::PointXYZ>::ConstPtr cloud)
{// --------------------------------------------// -----Open 3D viewer and add point cloud-----// --------------------------------------------boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new pcl::visualization::PCLVisualizer ("3D Viewer"));  viewer->setBackgroundColor (0, 0, 0);  viewer->addPointCloud<pcl::PointXYZ> (cloud, "sample cloud");  viewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "sample cloud");  viewer->addCoordinateSystem (1.0);  viewer->initCameraParameters ();return (viewer);
}鼠标事件:
键盘交互:
调用函数为:
摄像头初始化函数:
viewer->registerKeyboardCallback (keyboardEventOccurred, (void*)&viewer);
viewer->registerMouseCallback (mouseEventOccurred, (void*)&viewer);
void keyboardEventOccurred (const pcl::visualization::KeyboardEvent &event,void* viewer_void)
{boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer = *static_cast<boost::shared_ptr<pcl::visualization::PCLVisualizer> *> (viewer_void);if (event.getKeySym () == "r" && event.keyDown ()){std::cout << "r was pressed => removing all text" << std::endl;char str[512];for (unsigned int i = 0; i < text_id; ++i){sprintf (str, "text#%03d", i);viewer->removeShape (str);}text_id = 0;}
}
void mouseEventOccurred (const pcl::visualization::MouseEvent &event,void* viewer_void)
{boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer = *static_cast<boost::shared_ptr<pcl::visualization::PCLVisualizer> *> (viewer_void);if (event.getButton () == pcl::visualization::MouseEvent::LeftButton && event.getType () == pcl::visualization::MouseEvent::MouseButtonRelease){std::cout << "Left mouse button released at position (" << event.getX () << ", " << event.getY () << ")" << std::endl;char str[512];sprintf (str, "text#%03d", text_id ++);viewer->addText ("clicked here", event.getX (), event.getY (), str);}
}
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new pcl::visualization::PCLVisualizer ("3D Viewer"));
viewer->initCameraParameters ();

后记:

具体的使用方法还有很多,参见官方文档。

PCL:PCL可视化显示点云相关推荐

  1. PCL库VTK显示点云法向时出错:no override found for vtkActor

    错误:no override found for vtkActor (我的环境是pcl1.8.1)解决办法: 1. 头文件中添加 #include <vtkAutoInit.h> VTK_ ...

  2. 服务器可视化显示空间,云服务器可视化面板

    云服务器可视化面板 内容精选 换一换 示例:购买并登录Windows弹性云服务器示例:购买并登录Linux弹性云服务器云平台提供了多种实例类型供您选择,不同类型的实例可以提供不同的计算能力和存储能力. ...

  3. PCL Show Point Cloud 显示点云

    在使用PCL库的时候,经常需要显示点云,可以用下面这段代码: #include <pcl/visualization/cloud_viewer.h>pcl::PointCloud<p ...

  4. PCL学习一:点云与PCL基础

    参考引用 黑马机器人 | PCL-3D点云 PCL(Point Cloud Library)学习记录 PCL点云库学习笔记(文章链接汇总) 1. 点云概述 点云(Point Cloud)是三维空间中, ...

  5. PCL中的OpenNI点云获取框架(OpenNI Grabber Framework in PCL)

    从PCL 1.0开始,PCL(三维点云处理库Point Cloud Library)提供了一个通用采集接口,这样可以方便地连接到不同的设备及其驱动.文件格式和其他数据源.PCL集成的第一个数据获取驱动 ...

  6. PCL之鼠标拾取点云的三维坐标

    代码展示:  #include <string> #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> # ...

  7. PCL入门系列 —— StatisticalOutlierRemoval 点云统计滤波

    PCL入门系列 -- StatisticalOutlierRemoval 点云统计滤波 前言 程序说明 输出结果 代码示例 总结 前言 随着工业自动化.智能化的不断推进,机器视觉(2D/3D)在工业领 ...

  8. PCL直通滤波器PassThrough点云滤波

    PassThrough PassThrough是直通滤波器,意思是可以设定一个频带,可以选择保留频带内的或者舍弃频带内的 代码 #include <iostream> #include & ...

  9. PCL 任意多边形内部点云提取

    随机数 一.概述 二.代码 二.结果 一.概述   提取多边形内部的点. 二.代码 #include <iostream> #include <pcl/io/pcd_io.h> ...

最新文章

  1. getElementById 不能取得visible=false 的控件解决方法
  2. 5 个 Android 开发中比较常见的内存泄漏问题及解决办法
  3. zabbix安装使用及监控案例(从头到尾)
  4. sql 字符串比较大小_SQL简单查询第二关
  5. Privatization of Roads in Treeland
  6. linux实时进程优先级rt,Linux实时性- PREEMPT_RT实时抢占实现
  7. 这就是数据分析之数据集成
  8. linux下mongodb 安装,linux下mongodb安装
  9. 汇编程序16位带符号变量计算
  10. PM经验谈 项目管理工具必备的5个功能
  11. linux btrfs raid0,Linux初学之btrfs文件系统及磁盘配额
  12. css3常用语言-动画
  13. 达人评测华为MatePadPro2怎么样
  14. 2 为什么软件架构很重要
  15. SAP FI系统配置-资产相关
  16. 下载delphi 5 至 delphi 2010
  17. 好用的个人树洞外链系统程序源码
  18. 2017智慧医疗与安防产业发展研讨会圆满落幕
  19. iOS 隐藏顶部状态栏
  20. Satwe楼板能用弹性模计算吗_关于PKPM系列软件楼板模型问题的探讨

热门文章

  1. 【译】canvas笔触魔法师
  2. 网络设备监控-Catic添加H3C的监控图解
  3. 20165211 2017-2018-2 《Java程序设计》第4周学习总结
  4. spero性能调优记录
  5. struts2 的国际化
  6. OSX 挂载 NTFS 格式硬盘
  7. C语言经典算法100例
  8. AIX命令参考大全,卷 4,n - r
  9. [转] Mysql命令基础
  10. AI 名校课程书籍 需要学习