博客转载自: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. bzoj 2435 道路修建

    Written with StackEdit. Description 在 \(W\) 星球上有 \(n\) 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是 ...

  2. 微软SaaS多租户解决方案

    微软SaaS多租户解决方案 docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns https://d ...

  3. LinuxCentos6安装MySql workbench

    参考地址:http://www.cnblogs.com/elaron/archive/2013/03/19/2968699.html

  4. Linq:从XML获取数据

    实体类 public class Customer { public string CustomerID { get; set; } public string CompanyName { get; ...

  5. SqlServer 数据表数据移动

    描述:将Test1表中的数据放到Test2表中 1.Test2表不存在 select A,B,C insert into Test2 from Test1 select * into Test2 fr ...

  6. UIView+PYJExtension

    UIView+PYJExtension.h: // // UIView+PYJExtension.h // 扩展 // // Created by 彭运京 on 16/6/21. // Copyrig ...

  7. elasticsearch snapshot快照备份和恢复

    环境:mac   使用brew 安装elasticsearch   1.在 /usr/local/etc/elasticsearch/elasticsearch.yml 文件中配置快照地址     p ...

  8. Oracle备份与恢复案例

    注:以下内容来自<Oracle备份与恢复案例.doc>文档. Oracle备份与恢复案例 By Piner 一. 理解什么是数据库恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的. ...

  9. javax.servlet-api-xx.jar和servlet-api.jar区别

    一.简介支持servlet的jar包.应该叫servlet-api.jar如果编写过servlet就知道要用到HttpServletRequest和HttpServletResponse等对象,这些对 ...

  10. 一个工程实例来学习 Makefile

    March 3, 2015 8:19 PM Makefile 文件的编写 学习前的准备 需要准备的工程目录结构如下: . ├── add │   ├── add_float.c │   ├── add ...