博客转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/51321988

前言

抛开算法层面不谈,要利用PCL库中PCLVisualizer可视化类,显示出不同模型并对模型做出不同渲染,制作出丰富的可视化效果以增强自己应用的功能。下面将对如何添加立方体模型和圆球模型到视窗并渲染进行一个大概描述。

立方体模型

//向视窗添加一个立方体模型并渲染,只显示线框。若不要显示线框将下面一行代码注释即可。
viewer->addCube(0.1, 0.2, 0.1, 0.2, 0.1, 0.2);
viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_REPRESENTATION, pcl::visualization::PCL_VISUALIZER_REPRESENTATION_WIREFRAME,"cube");

PCL Docs

bool addCube (const pcl::ModelCoefficients &coefficients, const std::string &id="cube", int viewport=0)
bool addCube (const Eigen::Vector3f &translation, const Eigen::Quaternionf &rotation, double width, double height, double depth, const std::string &id="cube", int viewport=0)
bool addCube (float x_min, float x_max, float y_min, float y_max, float z_min, float z_max, double r=1.0, double g=1.0, double b=1.0, const std::string &id="cube", int viewport=0)

圆球模型

//向视窗添加一个立方体模型并渲染,透明显示。若不要透明显示将下面一行代码注释即可。
viewer->addSphere(cloud->points.at(0), 0.1, 1, 1, 1);
viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY, 0.3, "sphere");

圆球模型

#include"Eigen/Core"
//绕Z轴旋转15°
Eigen::AngleAxisf rotation_vector(M_PI / 4, Eigen::Vector3f(0, 0, 1));
_viewer->addCube(Eigen::Vector3f(16.4842, 11.3017, 0), Eigen::Quaternionf(rotation_vector),1.3,1.0,1.1,"cube2");
_viewer>setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_REPRESENTATION, pcl::visualization::PCL_VISUALIZER_REPRESENTATION_WIREFRAME, "cube2");
//移除Shape
_viewer->removeShape("cube2");

PCL Docs

bool addSphere (const PointT &center, double radius, double r, double g, double b, const std::string &id="sphere", int viewport=0)
bool addSphere (const pcl::ModelCoefficients &coefficients, const std::string &id="sphere", int viewport=0)
bool addSphere (const PointT &center, double radius, const std::string &id="sphere", int viewport=0)

渲染模式

PCL Docs

//Set the rendering properties of a shape
bool setShapeRenderingProperties (int property, double value, const std::string &id, int viewport=0)
//Set the rendering properties of a shape (2x values - e.g., LUT minmax values)
bool setShapeRenderingProperties (int property, double val1, double val2, const std::string &id, int viewport=0)
//Set the rendering properties of a shape (3x values - e.g., RGB)
bool setShapeRenderingProperties (int property, double val1, double val2, double val3, const std::string &id, int viewport=0)

渲染参数说明

基于PCL绘制模型并渲染的更多相关文章

  1. 基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)

    加入实验室后,经过张老师的介绍,有幸与某公司合共共同完成某个项目,在此项目中我主要负责的是三维 pdf 报告生成.Dicom图像上亮度.对比度调整以及 Dicom图像三维重建.今天主要介绍一下完成Di ...

  2. 怎样用ZBrush对模型进行渲染

    关于如何使用ZBrush®3D图形绘制软件雕刻僵尸模型,Fisker老师用了6个章节共41课时,从人体躯干和骨骼雕刻,到衣服.鞋子制作,再到顶点着色,向大家一一展示了雕刻过程,其中分享了很多ZBrus ...

  3. 基于 Agent 的模型入门:Python 实现隔离仿真

    2005 年诺贝尔经济学奖得主托马斯·谢林(Thomas Schelling)在上世纪 70 年代就纽约的人种居住分布得出了著名的 Schelling segregation model,这是一个 A ...

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

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

  5. 基于显卡的光栅化渲染器Gaius计划

    决定实现一个基于显卡的光栅化渲染器,能将一些基于显卡的新算法融入其中.

  6. 【tornado】系列项目(二)基于领域驱动模型的区域后台管理+前端easyui实现

    本项目是一个系列项目,最终的目的是开发出一个类似京东商城的网站.本文主要介绍后台管理中的区域管理,以及前端基于easyui插件的使用.本次增删改查因数据量少,因此采用模态对话框方式进行,关于数据量大采 ...

  7. 【tornado】系列项目(一)之基于领域驱动模型架构设计的京东用户管理后台

    本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: python中并没有类似java等其它语言中的接口类型,但是python中 ...

  8. DL4NLP——词表示模型(二)基于神经网络的模型:NPLM;word2vec(CBOW/Skip-gram)

    本文简述了以下内容: 神经概率语言模型NPLM,训练语言模型并同时得到词表示 word2vec:CBOW / Skip-gram,直接以得到词表示为目标的模型 (一)原始CBOW(Continuous ...

  9. ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档]

    ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人[中文文档] 简介 简单地说就是该有的都有了,但是总体跑起来效果还不好. 还在开发中,它工作的效果还不好.但是你可以直 ...

随机推荐

  1. 牛顿方法的简单MATLAB编程示意

    function y = f(x) y=(x-2)^2; function x0 syms x; x0=rand; while f(x0)~=0 x0=-f(x0)/vpa(subs(diff((x- ...

  2. linux学习 XShell上传、下载本地文件到linux服务器

    (一)通过命令行的方式 1.linux服务器端设置 在linux主机上,安装上传下载工具包rz及sz; 如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带 ...

  3. Java中小数保留问题

    方式一: 四舍五入   double   f   =   111231.5585;   BigDecimal   b   =   new   BigDecimal(f);   double   f1  ...

  4. fn project Function files 说明

    主要是文件 func.yaml func.json 详细说明如下: An example of a function file: name: fnproject/hello version: 0.0. ...

  5. assembly 需要 unload 和 update 的时候怎么办?

    我正在开发公司的业务组件平台,组件池的灵活性要求很高,业务组件都是可以立即更新和及时装配的;目前完成这些功能,有待测试.用appDomain.unload 拆卸assembly 可以,只是用起来比较麻 ...

  6. linux下修改ip地址

    1.more  /etc/sysconfig/network-scripts/ifcfg-eth0 2.ifconfig eth0 192.168.1.211 netmask 255.255.255. ...

  7. slabtop 监控实时内核片缓存信息

                                        使用 slabtop命令监控实时内核片缓存信息                                 默认情况下,sl ...

  8. C 游戏所要看的书

    C 游戏所要看的书 1.C++primer中文版第4版     经典啊2.C++标准程序库自修教程与参考手册 3.Windows程序设计第5版 4.MFC windows程序设计第2版中文版 5.VC ...

  9. keytool生成JKS证书的详细步骤及截图

    注:防止有不必要的空格,尽量不要复制粘贴 1. 依据CFCA所提供的CN生成密钥存储文件和密钥对(创建JKS证书库) keytool -genkey -v -alias slserver -keyal ...

  10. oracle11.2 安装

    win10安装oracle 11g 时出现INS-13001环境不满足最低要求 oracle在win10上安装教程