基於PCL繪製模型並渲染

2022-06-10 02:12:09 字數 2729 閱讀 9540

部落格**自:

拋開演算法層面不談,要利用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 ¢er, 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 ¢er, 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畫圓球 基於PCL繪製模型並渲染

前言 拋開演算法層面不談,要利用pcl庫中pclvisualizer視覺化類,顯示出不同模型並對模型做出不同渲染,製作出豐富的視覺化效果以增強自己應用的功能。下面將對如何新增立方體模型和圓球模型到視窗並渲染進行乙個大概描述。立方體模型 向視窗新增乙個立方體模型並渲染,只顯示線框。若不要顯示線框將下面...

pcl畫圓球 基於PCL繪製模型並渲染

前言 拋開演算法層面不談,要利用pcl庫中pclvisualizer視覺化類,顯示出不同模型並對模型做出不同渲染,製作出豐富的視覺化效果以增強自己應用的功能。下面將對如何新增立方體模型和圓球模型到視窗並渲染進行乙個大概描述。立方體模型 向視窗新增乙個立方體模型並渲染,只顯示線框。若不要顯示線框將下面...

PCL 基於PCL繪製包圍盒基礎介紹(1)

包圍盒顧名思義就是類似乙個盒子把物體包圍起來。以下內容來自百科 包圍盒是一種求解離散點集最優包圍空間的演算法,基本思想是用體積稍大且特性簡單的幾何體 稱為包圍盒 來近似地代替複雜的幾何物件。常見的包圍盒演算法有aabb包圍盒 包圍球 方向包圍盒obb以及固定方向凸包fdh。碰撞檢測問題在虛擬實境 計...