PCL——简单点云可视化

  • 1. 可视化概念
  • 2. 示例代码
  • 3. 资源下载

1. 可视化概念

  • 可视化是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。
  • PCL 中的 pcl_visualization 库提供了可视化相关的数据结构和组件,包含27个类似及十多个函数,其主要是为了其他模块的算法处理后的结果直观的反馈给用户,同时提供与VTK进行数据变换的接口,方便开发者直接进行扩展。

2. 示例代码

  • ==以下代码可以参照《点云库PCL从入门到精通》==的代码,但是其中有错误,也可以参照PCL的官方文档:https://pcl.readthedocs.io/projects/tutorials/en/master/cloud_viewer.html

  • 下图是加载了一个麦子点云文件后显示出来的结果,如果你加载出来的结果什么都看不见,或许是显示的太近导致的。

  • 滚轮 可以调整点云的远近;

  • 鼠标右键 也可以调整远近;

  • 鼠标左键 可以调整点云整体的角度;

  • 按下滚轮 可以上下左右拖动点云;

  • cloud_viewer.cpp
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)int user_data;
void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{viewer.setBackgroundColor(1.0, 0.5, 1.0);pcl::PointXYZ o;o.x = 1.0;o.y = 0;o.z = 0;viewer.addSphere(o, 0.25, "sphere", 0);std::cout << "i only run once" << std::endl;}void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{static unsigned count = 0;std::stringstream ss;ss << "Once per viewer loop: " << count++;viewer.removeShape("text", 0);viewer.addText(ss.str(), 200, 300, "text", 0);//FIXME: possible race condition here:user_data++;
}int main()
{pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);//pcl::io::loadPCDFile("milk.pcd", *cloud);pcl::io::loadPCDFile("maize.pcd", *cloud);pcl::visualization::CloudViewer viewer("Cloud Viewer");//showCloud函数是同步的,在此处等待直到渲染显示为止viewer.showCloud(cloud);//该注册函数在可视化时只调用一次viewer.runOnVisualizationThreadOnce(viewerOneOff);//该注册函数在渲染输出时每次都调用viewer.runOnVisualizationThread(viewerPsycho);while (!viewer.wasStopped()){//在此处可以添加其他处理user_data++;}system("Pause");return 0;
}
  • 如果你在运行程序时发生了以下错误:
    Error:no override found for vrkPolyDataMapper
  • 解决方案可以参考这篇博客:https://blog.csdn.net/weixin_44522815/article/details/113096312?spm=1001.2014.3001.5506

3. 资源下载

https://download.csdn.net/download/weixin_38566632/85225587

PCL——简单点云可视化相关推荐

  1. PCL之点云可视化--CloudViewer

    点云视窗类CloudViewer是简单的可视化点云工具类,仅用几行代码就可以让用户查看点云:但需要注意的是该类不能用于多线程应用程序中. 代码展示 #include<pcl/point_type ...

  2. python点云可视化工具_救命!点云可视化(不需配置PCL)

    分享一波简单的可视化bin格式点云的方法. 先大概讲下背景,目前激光雷达采集的点云文件大多基于ROS,然后转化为pcd.bin格式进行处理.(ros-pcd-bin格式之间相互转换格式有相应的工具,如 ...

  3. pcl画圆球_PCL 可视化-阿里云开发者社区

    可视化(visualization)是利用计算机图形学和图像处理技术,将数据转换图像在屏幕上显示出来,并进行交互处理的的理论,方法和技术, pcl_visualization库建立了能够快速建立原型的 ...

  4. creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI

    大家在做点云的时候经常会用到QT,但是我们需要使用QT做点云的可视化的时候又需要VTK,虽然我们在windows下安装PCL的时候就已经安装了VTK,由于跟着PCL安装的VTK是没有和QT联合编译的, ...

  5. 第七周PCL学习--点云配准(七)

    目录 引言 一.点云配准 1.1.定义 1.2.含义 1.3.配准过程 1.4.算法原理 1.5.实验 二.总结 三.参考 引言 随着计算机辅助设计技术的发展,通过实物模型产生数字模型的逆向工程技术, ...

  6. python点云可视化_3D可视化神器之Open3D

    很多时候在python里面你要找一个3D点云可视化的库真的是难啊.你的选择可能是:pcl mayavi matplolib 但是以上都不好用,pcl甚至没有靠谱的python wrapper,唯一一个 ...

  7. PCL教程-点云配准之成对逐步配准(两两配准)

    原文链接:How to incrementally register pairs of cloudshttps://pcl.readthedocs.io/projects/tutorials/en/l ...

  8. win下使用QT添加VTK插件实现点云可视化GUI

    摘要​ 大家在做点云的时候经常会用到QT,但是我们需要使用QT做点云的可视化的时候又需要VTK,虽然我们在windows下安装PCL的时候就已经安装了VTK,由于跟着PCL安装的VTK是没有和QT联合 ...

  9. 29 基于PCL的点云平面分割拟合算法技术路线(针对有噪声的点云数据)

    0 引言 最近项目中用到了基于PCL开发的基于平面的点云和CAD模型的配准算法,点云平面提取采用的算法如下. 1 基于PCL的点云平面分割拟合算法 2 参数及其意义介绍 (1)点云下采样 1. 参数: ...

  10. 手把手:R语言文本挖掘和词云可视化实践

    互联网时代,大量的新闻信息.网络交互.舆情信息以文本形式存储在数据库中,如何利用数据分析和文本挖掘的算法,将海量文本的价值挖掘出来,成为我们团队近期的一个研究方向,本案例就是我们的一个初步尝试.飞信群 ...

最新文章

  1. wxpython分割窗口_wxPython实现分隔窗口
  2. 使用了这个神器,让我的代码bug少了一半
  3. 解决java.lang.UnsupportedClassVersionError
  4. iOS 之 内存管理
  5. P3317-[SDOI2014]重建【矩阵树定理,数学期望】
  6. 使用SWTEventHelper清除SWT侦听器通知
  7. MFC开发IM-第五篇、MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法
  8. [转载] python如何获取当前月份_Python-获取当前月的前x月月份日期
  9. 学生社团管理系统(Java+Swing+mysql)(超简陋)
  10. 【转】MS.Net开发人员必备的十种工具
  11. 实验三 循环程序设计
  12. 软件设计模式之路-----装饰者模式
  13. 微信小程序 登录与退出登录
  14. c语言语法要素,第6章DSP_C语言程序设计要素.ppt
  15. 【错误解决】SpringBoot邮件服务的一些错误及其解决方案
  16. 柱状图python_鬼灭之刃:鬼杀队九柱实力排行,霞柱是强弱分界线
  17. 微信小程序解决苹果端在禁止下拉刷新以后仍可以拖到屏幕的问题
  18. CNN网络结构理解:感受野计算方法
  19. Windows中无法删除文件的解决办法
  20. matlab中liccode函数,基于matlab车牌识别系统设计与实现(最终版)

热门文章

  1. HTML中注解的写法正确的是,css注释的写法(单行和多行)
  2. sucess - money - freedom
  3. 8本好书上新:越忙越要多读书
  4. node 压缩图片_Tinypng - 比ps更厉害的免费图片压缩神器
  5. toLower toUpper
  6. C语言任意输入三个数构成三角形,随便输入三个数,看能否组成一个三角形
  7. 你真的理解:“学而不思则罔”? 什么是学习吗?
  8. (83)--用代码实现超越函数
  9. tenacity重试机制
  10. AR技术在智慧交通中的应用