pcl画圆球_点云视窗类CloudViewer的介绍以及PCL程序:圆球几何体代码解析

2023-11-16

点云视窗类CloudViewer是简单显示点云的可视化工具类,可以让用户用尽可能少的代码查看点云。注意:点云视窗类不能应用于多线程应用程序中。

有关CloudViewer类的成员变量和函数等等,可以C:\Program

Files\PCL 1.6.0\include\pcl-1.6\pcl\visualization\impl目录下的pcl_visualizer.hpp文件中查看。

/*

*PCL安装和环境配置请参考:

*代码出处:

*代码中加载的点云文件my_point_cloud.pcd,可以去下面地址复制粘贴:

*/

一、PCL程序:圆球几何体

#include

#include

#include

#include

int user_data;

void viewerOneOff (pcl::visualization::PCLVisualizer& viewer)

{

//设置背景颜色

viewer.setBackgroundColor (1.0, 0.5, 1.0);

//球体坐标

pcl::PointXYZ o;

o.x = 0;

o.y = 0;

o.z = 0;

//添加球体

viewer.addSphere (o, 1, "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<:pointxyzrgba>::Ptr cloud (new pcl::PointCloud<:pointxyzrgba>);

pcl::io::loadPCDFile ("my_point_cloud.pcd", *cloud); //加载点云文件

pcl::visualization::CloudViewer viewer("Cloud Viewer");//创建viewer对象

//blocks until the cloud is actually rendered

viewer.showCloud(cloud);

//use the following functions to get access to the underlying more advanced/powerful

//PCLVisualizer

//This will only get called once

viewer.runOnVisualizationThreadOnce (viewerOneOff);

//This will get called once per visualization iteration

viewer.runOnVisualizationThread (viewerPsycho);

while (!viewer.wasStopped ())

{

//you can also do cool processing here

//FIXME: Note that this is running in a separate thread from viewerPsycho

//and you should guard against race conditions yourself...

user_data++;

}

return 0;

}

因为代码量很大,本文中只是列出圆体几何体代码中所涉及到CloudViwer类中的函数。

1.viewer.addSphere ();

代码原型:

template bool

pcl::visualization::PCLVisualizer::addSphere (const PointT ¢er, double radius, double r, double g, double b, const std::string &id, int viewport)

{

// Check to see if this ID entry already exists (has it been already added to the visualizer?)

ShapeActorMap::iterator am_it = shape_actor_map_->find (id);

if (am_it != shape_actor_map_->end ())

{

PCL_WARN ("[addSphere] A shape with id already exists! Please choose a different id and retry.\n", id.c_str ());

return (false);

}

//vtkSmartPointer data = createSphere (center.getVector4fMap (), radius);

vtkSmartPointer data = vtkSmartPointer::New ();

data->SetRadius (radius);

data->SetCenter (double (center.x), double (center.y), double (center.z));

data->SetPhiResolution (10);

data->SetThetaResolution (10);

data->LatLongTessellationOff ();

data->Update ();

// Setup actor and mapper

vtkSmartPointer mapper = vtkSmartPointer::New ();

mapper->SetInputConnection (data->GetOutputPort ());

// Create an Actor

vtkSmartPointer actor = vtkSmartPointer::New ();

actor->SetMapper (mapper);

//createActorFromVTKDataSet (data, actor);

actor->GetProperty ()->SetRepresentationToWireframe ();

actor->GetProperty ()->SetInterpolationToGouraud ();

actor->GetMapper ()->ScalarVisibilityOff ();

actor->GetProperty ()->SetColor (r, g, b);

addActorToRenderer (actor, viewport);

// Save the pointer/ID pair to the global actor map

(*shape_actor_map_)[id] = actor;

return (true);

}

template bool

pcl::visualization::PCLVisualizer::addSphere (const PointT ¢er, double radius, const std::string &id, int viewport)

{

return (addSphere (center, radius, 0.5, 0.5, 0.5, id, viewport));

}

//暂时其他的函数找起来有点头疼,慢慢再找ing....

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pcl画圆球_点云视窗类CloudViewer的介绍以及PCL程序:圆球几何体代码解析 的相关文章

  • 微信小程序wx.getUserProfile的用法

    接触了以前开发的一个微信小程序 发现wx getUserInfo这个官方接口不能获取用户的信息 我重新创建了一个新的项目 发现可以用wx getUserProfile这个官方接口来获取用户信息 具体操作如下 1 首先在xxxx jslim里
  • transformer的学习记录【完整代码+详细注释】(系列二)

    文章目录 1 编码器部分实现 1 1 掩码张量 1 1 1 用 np triu 生产上三角矩阵 1 1 2 生成掩码张量的代码 1 1 3 掩码张量可视化展示 1 1 4 掩码张量学习总结 1 2 注意力机制 1 2 1 注意力机制 vs
  • QT6.4制作动态组织架构图

    最近项目需要用QT开发组织架构图 本来先网上找个demo拿来即用 但是找了一圈 要么不能编译 要么运行崩溃 要么很粗糙什么细节都没做 离实际应用差距甚远 于是我自己重新编写调试 耗费几天时间 在Window10 X64上运行 五层级别 右键
  • Java TreeMap 源码解析

    Java TreeMap 源码解析 继上篇文章介绍完了HashMap 这篇文章开始介绍Map系列另一个比较重要的类TreeMap 大家也许能感觉到 网络上介绍HashMap的文章比较多 但是介绍TreeMap反而不那么多 这里面是有原因 一
  • 网络安全应急响应----4、DDoS攻击应急响应

    文章目录 一 DDoS攻击简介 二 DDoS攻击方法 1 消耗网络带宽资源 1 1 ICMP Flood ICMP洪水攻击 1 2 UDP Flood UDP洪水攻击 2 消耗系统资源 2 1 TCP Flood 2 2 SYN Flood
  • PoDoFo实现本地PDF加载

    PdfMemDocument类 未完成 继承 PdfDocument 友元 PdfWriter 构造函数 PdfMemDocument 构造空对象 PdfMemDocument bool bOnlyTrailer 构造对象 bOnlyTra
  • 若依前后端分离部署(二级域名+反向代理+负载均衡)

    前言 最近使用若依前后端进行二次开发 在部署时遇到了一些问题 在此记录一些经验 仅记录学习和供参考 如果错误请指正 谢谢 问题描述 由于服务器使用Nginx转发域名请求 无法使用根目录 于是在前端加入了二级目录 修改部分如下图 这里是前端入
  • 【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)

    目录 一 初始化列表 初始化列表概念 初始化列表的优点 使用场景 explicit关键字 二 Static成员 Static成员概念 静态数据成员 静态函数成员 使用静态成员的优点 使用静态成员的注意事项 三 友元 友元的概念 类友元 函数
  • vue2 img加载失败时给默认图片

  • python中的分页封装

    utils文件夹下面的pagination 自定义分页组件 import math from django utils safestring import mark safe class Pagination object def init
  • 《看完就懂系列》谈谈数据埋点的原理与实现

    这是大冰块2021年第7篇原创文章 和大冰块一起在前端领域努力吧 写在前面 之前公司接了个做广告的业务 甲方财大气粗 沟通也特别顺利 刚开始的时候 大家都摩拳擦掌兴致满满 觉得这个项目奖金一定会翻一番 于是第一版赶得很急 上线之后 点击率与
  • 高并发平台技术栈大起底

    技术栈 technology stack 就是一个公司的透视镜 从某些程度上可以展示出公司的技术实力 从技术桟也可以看出整个平台的技术要素 平台大小规模等 今天来给大家分享我司的技术全家桶 总览 闲来无事就想着还可以总结总结什么 平台架构
  • 时序分析基本概念介绍——时钟sdc

    上次介绍了sdc的基本概念 那接下来几期 我们来讲解一些比较常用的sdc命令 虽然sdc大大小小有上百条命令 但实际常用的其实就那么10几条 今天我们来介绍下与时钟相关的命令 主要有以下命令 create clock create gene
  • Zlib的安装与测试

    官方网址 http www zlib net 进入官网看到 如图所示 最新版本为zlib 1 2 11 然后你用wget http www zlib net zlib 1 2 11或者wget http www zlib net zlib
  • NGINX监听不同端口的配置

    server listen 81 监听的端口 server name localhost 监听的域名 location message 当当问这个路径时实际上会去访问下面这个地址 proxy pass http localhost xxx
  • 【计算机视觉40例】案例14:指纹识别

    导读 本文是专栏 计算机视觉40例简介 的第14个案例 指纹识别 该专栏简要介绍李立宗主编 计算机视觉40例 从入门到深度学习 OpenCV Python 一书的40个案例 目前 该书已经在电子工业出版社出版 大家可以在京东 淘宝 当当等平
  • 谈谈互联网免费思维

    大家好 我是测试小牛 一位平凡又普通的95后互联网博主 今天跟大家聊下互联网的免费思维 在移动互联网时代的今天 可能任何一家互联网创业公司的崛起都具备这种思维 比如当年快滴跟滴滴之争 美团跟饿了么之争 非但不收钱 还花钱大量补贴用户 去使用
  • [思考进阶]05 人与人之间的差距,在于“自律”

    除了要提升自己的技术能力 思维的学习和成长也非常非常重要 特推出此 思考进阶 系列 进行刻意练习 从而提升自己的认知 我认识两个成功的长者 其中有一个人 每天记录当天的重要事项 比如今天和谁签了什么合同 房子装修还差什么材料 女儿20岁生日
  • 【教程+实例】Python爬虫实例——用Python爬虫爬取bangumi上的galgame资讯

    文章目录 0 前言 1 什么是爬虫 2 什么东西可以爬 3 简易爬虫示例 4 如何筛选数据 5 正则表达式 6 最终代码 如何修改代码 以适应自己的需求 效果截图 7 彩蛋 本人与知乎用户间宫羽咲sama是同一人 内容同步更新在CSDN和知

随机推荐

  • 1.通用文件模型及VFS结构-基础

    一 reiserFS 新型文件系统 特点 1 采用完全平衡树来容纳数据 ReiserFS是基于平衡树 STree 的文件系统结构 尤其对于大量文件的巨型文件系统 如服务器上的文件系统 搜索速度要比ext2快 ext2使用局部的二分查找法 综
  • 客户服务器被 ddos 攻击,应该怎么办?

    转自 点击打开链接https www v2ex com t 145842 首页 注册 登录 V2EX way to explore V2EX 是一个关于分享和探索的地方 现在注册 已注册用户请 登录 V2EX 提问指南 广告
  • plSQL中修改代码字体的大小

    在第一次打开PLSQL时 大部分人看代码字体的大小肯定不习惯 这时候只需要修改一下字体的大小即可 首先找到左上角的 工具 然后点击第一个首选项 然后再用户界面找到 字体 最后点击编译器中的 选择 即可 然后就可以进行字体大小的调节了
  • Android推送总结

    http blog csdn net baidu 26352053 article details 54135107 最近Android开发当中推送技术是热点 互联网上不同的博客关于推送的介绍也非常的多 大致上关于推送技术 我们可以有使用第
  • JAVA_HOME is not set

    关于JAVA HOME没有设置 本人是在配置spark集群的时候显示 JAVA HOME is not set 具体如下 但是我们在 cd JAVA HOME 还是能够进去 查阅网上资料有各种各样的解决办法 但是看着没啥关系 于是我猜测是没
  • 解决百度网盘(百度云)分享链接不存在失效、分享的文件已经被取消的问题

    解决百度网盘 百度云 分享链接不存在失效 分享的文件已经被取消的问题 参考文章 1 解决百度网盘 百度云 分享链接不存在失效 分享的文件已经被取消的问题 2 https www cnblogs com hafiz p 5496391 htm
  • spring--容器创建过程(IOC和AOP的过程)

    在前面两篇中我们介绍了IOC和AOP 知道了IOC容器就是来管理每个Bean的 而AOP就是对这些Bean进行功能的拓展 那么这个过程是怎么样实现的呢 IOC和AOP又是怎么样的一个过程呢 一 Spring容器创建过程 我们通过一个简单的创
  • 配置网卡信息/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip

    1 ifconfig查看ip信息 root用户下 root edgzrip2 ifconfig a eth0 Link encap Ethernet HWaddr 00 50 56 2B 27 67 inet addr 192 168 23
  • 一键列出所有容器IP地址脚本

    文章目录 使用场景 效果 列出所有容器 自动跳过无终端的容器 脚本 案例 查看网络带宽占用 过滤IP对应的容器 解决带宽占用问题 使用场景 在服务器带宽被占用 但不好定位是哪个容器时 通过用此脚本来快速过滤容器名 以便解决问题 效果 列出所
  • [C++]使用关键字new创建对象

    1 首先解释new关键字的作用 在堆中开辟指定数据类型的空间 调用指定数据类型的构造函数 创建对象 返回创建的对象 int pn new int new与delete搭配使用 这种写法 pn为栈上的一个指针 指向堆上所对应的内存块 int
  • 逻辑地址、物理地址和线性地址

    逻辑地址 logical address 包含在机器语言指令中用来指定一个操作数或一条指令的地址 这种寻址方式在80X86著名的分段结构中表现的尤为具体 它促使MS DOS或Windows程序员把程序分成若干段 每一个逻辑地址都由一个段 s
  • 【pyspark】DataFrame基础操作(二)

    介绍一下 pyspark 的 DataFrame 基础操作 一 选择和访问数据 PySpark DataFrame 是惰性计算的 简单地选择一列不会触发计算 但它会返回一个 Column 实例 并且 大多数按列操作都返回 Column 实例
  • 代码审计工具学习之Seay(安装以及初步认识)

    目录 1 1名词解释 1 2代码审计的重要性 1 3代码审计的步骤 1 4代码审计的内容 1 5常见的代码审计工具 2 Seay 2 1什么是Seay 2 2 Seay的安装过程 3典型漏洞分析 3 1什么是命令注入漏洞 3 2 如何理解命
  • Windows下运用Tensorflow object detection API训练出现的问题--爬坑

    刚开始学习Tensorflow object detection API遇到了不少问题 下面就遇到的问题做下记录 我是在CPU下训练的模型 然后遇到训练到一百多步的时候会报这个错误 如图 用的训练模型为ssd mobilenet v1 co
  • VS2010中dumpbin工具的使用

    用VS2010生成的 obj文件 lib库 dll库 exe执行文件 如果想查看其中这些文件或库包含了哪些函数以及相关的信息 符号清单 可以通过VS2010自带的dumpbin工具来完成 dumpbin exe为Microsoft COFF
  • C++入门篇--函数

    C 的函数和C语言的函数是差不多的 都是把要重复使用的代码封装起来 以便我们后续使用 而C 的函数在c语言上右增加了几个特性 那就是缺省参数和函数重载 这一篇就分享一下C 函数的这些特性 开篇 说到函数 自然得提一下C 的输入函数和输出函数
  • ArcGIS应用基础知识

    ArcGIS应用基础 一 地理信息系统概念介绍 二 地图基本知识 三 ArcGIS体系介绍 四 ArcGIS数据格式介绍 五 基本工具介绍 一 地理信息系统概念介绍 地理信息系统 简称GIS Geographic Information S
  • Reflect中MethodInfo使用方法

    using System using System Collections Generic using System Linq using System Text using System Reflection namespace Meth
  • Spring——spring集成mybatis

    目录 1 spring集成mybatis相关说明 2 实现步骤 2 1实现步骤说明 2 2准备数据库 MySQL 创建新建表 Student 2 3 maven 依赖 pom xml 2 4 实体类 Student 2 5定义 Studen
  • pcl画圆球_点云视窗类CloudViewer的介绍以及PCL程序:圆球几何体代码解析

    点云视窗类CloudViewer是简单显示点云的可视化工具类 可以让用户用尽可能少的代码查看点云 注意 点云视窗类不能应用于多线程应用程序中 有关CloudViewer类的成员变量和函数等等 可以C Program Files PCL 1