PCL函数库摘要——可视化

1.Class pcl::visualization::CloudViewer

类CloudViewer 实现创建点云可视化的窗口,以及相关的可视化功能。

#include <pcl/visualization/cloud_viewer.h>
CloudViewer (const std::string &window_name) 
//  构建可视化点云窗口,窗口名为window_name。  
~CloudViewer () 
//  注销窗口相关资源。  
void  showCloud (const ColorCloud::ConstPtr &cloud, const std::string &cloudname="cloud") 
//  在可视化点云窗口中显示cloud对应的点云,考虑到多个点云用键值cloudname来限定具体是哪个点云。  
void  showCloud (const ColorACloud::ConstPtr &cloud, const std::string &cloudname="cloud") 
void  showCloud (const GrayCloud::ConstPtr &cloud, const std::string &cloudname="cloud") 
void  showCloud (const MonochromeCloud::ConstPtr &cloud, const std::string &cloudname="cloud") 
//  以上3个函数分别实现对不同类型点云的在窗口中的显示。  
bool  wasStopped (int millis_to_wait=1) 
//  判断用户是否已关闭窗口,如果是则需要注销窗口, millis_to_wait为在注销窗口之前的等待。  
void  runOnVisualizationThread (VizCallable x, const std::string &key="callable") 
//  在窗口运行期间处理x回调函数, key为键值标识此回调函数,直到窗口关闭。  
void  runOnVisualizationThreadOnce (VizCallable x) 
//  同上,但只调用回调函数一次。 
void  removeVisualizationCallable (const std::string &key="callable") 
//  删除key对应的回调函数。  
boost::signals2::connection  registerKeyboardCallback (void(*callback)(const pcl::visualization::KeyboardEvent &, void *), void *cookie=NULL) 
//  注册键盘事件回调函数,cookie为回调时传递的参数, callback为回调函数指针。  
template<typename T >  
boost::signals2::connection  registerKeyboardCallback (void(T::*callback)(const pcl::visualization::KeyboardEvent &, void *), T &instance, void *cookie=NULL) 
//  功能同上,其中 instance引用指向实现该回调函数的对象。  
boost::signals2::connection  registerMouseCallback (void(*callback)(const pcl::visualization::MouseEvent &, void *), void *cookie=NULL) 
//  注册鼠标事件回调函数, cookie为回调时传递的参数,callback 为回调函数指针。  
template<typename T >  
boost::signals2::connection  registerMouseCallback (void(T::*callback)(const pcl::visualization::MouseEvent &, void *), T &instance, void *cookie=NULL) 
//  功能同上,其中instance引用指向实现该回调函数的对象。  
boost::signals2::connection  registerPointPickingCallback (void(*callback)(const pcl::visualization::PointPickingEvent &, void *), void *cookie=NULL) 
//  点拾取事件回调函数, cookie为回调时传递的参数,callback为回调函数指针。  
template<typename T >  
boost::signals2::connection  registerPointPickingCallback (void(T::*callback)(const pcl::visualization::PointPickingEvent &, void *), T &instance, void *cookie=NULL) 
//  功能同上,其中instance 引用指向实现该回调函数的对象。

2.Class pcl::visualization::FloatImageUtils

类FloatImageUtils针对二维浮点数组的可视化类。

#include <pcl/visualization/common/float_image_utils.h>
static void  getColorForFloat (float value, unsigned char &r, unsigned char &g, unsigned char &b) 
//  静态成员,给定value属于[0,1],返回r、g、b颜色值。  
static void  getColorForAngle (float value, unsigned char &r, unsigned char &g, unsigned char &b) 
//  静态成员,给定value属于[-PI,PI],返回r、g、b颜色值。  
static void  getColorForHalfAngle (float value, unsigned char &r, unsigned char &g, unsigned char &b) 
// 静态成员,给定value属于[O,PI],返回r、g、b颜色值。  
static unsigned char *  getVisualImage (const float *float_image, int width, int height, float min_value=-std::numeric_limits< float >::infinity(), float max_value=std::numeric_limits< float >::infinity(), bool gray_scale=false) 
//  静态成员,float_image为给定的浮点数二维数组﹐返回3× width × height的RGB图像, min_value, max_value为给定浮点数的最小和最大值,用于归一化 float_image中浮点数,如果gray_scale为真,则输出图像仍为RGB格式,但是灰度图像。  
static unsigned char *  getVisualImage (const unsigned short *float_image, int width, int height, unsigned short min_value=0, unsigned short max_value=std::numeric_limits< unsigned short >::max(), bool gray_scale=false) 
//  静态成员,float_image为给定的正整数二维数组﹐返回3× width × height的RGB图像, min_value, max_value为给定正整数的最小和最大值,用于归一化 float_image中正整数,如果gray_scale为真,则输出图像仍为RGB格式,但是灰度图像。  
static unsigned char *  getVisualAngleImage (const float *angle_image, int width, int height) 
//  功能同上,利用getColorForAngle来决定返回RGB的各个值。  
static unsigned char *  getVisualHalfAngleImage (const float *angle_image, int width, int height) 
//  功能同上,利用getColorForHalfAngle来决定返回RGB的各个值。

3.Class pcl::visualization::PCLHistogramVisualizer

类PCLHistogram Visualizer实现对PCL中的直方图的可视化。

#include <pcl/visualization/histogram_visualizer.h>
PCLHistogramVisualizer () 
//  PCL histogram visualizer 构造函数  
virtual  ~PCLHistogramVisualizer () 
//  析构函数
void  spinOnce (int time=1) 
//  刷新屏幕显示一次, time为允许重新渲染一次的最大时间ms数。  
void  spin () 
//  调用内部渲染循环。  
void  setBackgroundColor (const double &r, const double &g, const double &b) 
//  设置视口的背景颜色,r、g,b为颜色, viewport为那个视口。
template<typename PointT >  
bool  addFeatureHistogram (const pcl::PointCloud< PointT > &cloud, int hsize, const std::string &id="cloud", int win_width=640, int win_height=200) 
//  在新窗口中显示 cloud中存放的直方图,窗口大小宽度为win_ width,高度为win_height。考虑到cloud中有可能有多个点云, id来指定某个点云。
bool  addFeatureHistogram (const pcl::PCLPointCloud2 &cloud, const std::string &field_name, const std::string &id="cloud", int win_width=640, int win_height=200) 
//  功能同上,点云定义采用PointCloud2 , field_name指定点云中存储直方图的字段。
template<typename PointT >  
bool  addFeatureHistogram (const pcl::PointCloud< PointT > &cloud, const std::string &field_name, const int index, const std::string &id="cloud", int win_width=640, int win_height=200) 
//  功能同上,点云定义采用PointCloud , field_name指定点云中存储直方图的字段,index为要从中提取直方图的点索引。  
bool  addFeatureHistogram (const pcl::PCLPointCloud2 &cloud, const std::string &field_name, const int index, const std::string &id="cloud", int win_width=640, int win_height=200) 
//  功能同上,点云定义采用PointCloud2 , field_name指定点云中存储直方图的字段,index为要从中提取直方图的点索引。  
template<typename PointT >  
bool  updateFeatureHistogram (const pcl::PointCloud< PointT > &cloud, int hsize, const std::string &id="cloud") 
//  刷新已有直方图显示,cloud为存储直方图的点云, hsize为直方图大小, id 为点云的ID。
bool  updateFeatureHistogram (const pcl::PCLPointCloud2 &cloud, const std::string &field_name, const std::string &id="cloud") 
//  刷新已有直方图显示,cloud为存储直方图的点云, field_name指定点云中存储直方图的字段, id 为点云的ID。  
template<typename PointT >  
bool  updateFeatureHistogram (const pcl::PointCloud< PointT > &cloud, const std::string &field_name, const int index, const std::string &id="cloud") 
//  刷新已有直方图显示,cloud为存储直方图的点云, field_name指定点云中存储直方图的字段, id 为点云的ID。    
bool  updateFeatureHistogram (const pcl::PCLPointCloud2 &cloud, const std::string &field_name, const int index, const std::string &id="cloud") 
//  刷新已有直方图显示,cloud为存储直方图的点云, field_name指定点云中存储直方图的字段, id 为点云的ID,index为要从中提取直方图的点索引。  
void  setGlobalYRange (float minp, float maxp) 
//  设置Y方向的最小和最大值,用于映射直方图中的值。  
void  updateWindowPositions () 
//  刷新所有窗口的位置,使得所有窗口都排列到适当的位置。

4.Class pcl::visualization::ImageViewer

类ImageViewer实现对二维图像图形可视化,包括对图像层、透明设置、基本二维图形等支持。

#include <pcl/visualization/image_viewer.h>
ImageViewer (const std::string &window_title="") 
//  构建二维可视化的窗口, window_title为窗口名。
virtual  ~ImageViewer () 
//  析构函数  
void  showMonoImage (const unsigned char *data, unsigned width, unsigned height, const std::string &layer_id="mono_image", double opacity=1.0) 
//  在窗口中显示二维灰度图形,data为二维图像数据,width为图像宽度, height为图像高度, layer_id为图层的ID号,opacity为该图层的透明度,1为不透明。
void  addMonoImage (const unsigned char *data, unsigned width, unsigned height, const std::string &layer_id="mono_image", double opacity=1.0) 
//  参数同上,功能为添加一灰度图像到图层 layer_id,但不显示,直到spin( )或spinOnce( )函数被调用。  
void  showMonoImage (const pcl::PointCloud< pcl::Intensity >::ConstPtr &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  在窗口中显示二维灰度点云图像。
void  addMonoImage (const pcl::PointCloud< pcl::Intensity >::ConstPtr &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  功能为添加一灰度点云图像到图层。
void  showMonoImage (const pcl::PointCloud< pcl::Intensity > &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  在窗口中显示二维灰度点云图像。  
void  addMonoImage (const pcl::PointCloud< pcl::Intensity > &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  功能为添加一灰度点云图像到图层。
void  showMonoImage (const pcl::PointCloud< pcl::Intensity8u >::ConstPtr &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  在窗口中显示二维灰度点云图像。 
void  addMonoImage (const pcl::PointCloud< pcl::Intensity8u >::ConstPtr &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  功能为添加一灰度点云图像到图层。
void  showMonoImage (const pcl::PointCloud< pcl::Intensity8u > &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  在窗口中显示二维灰度点云图像。 
void  addMonoImage (const pcl::PointCloud< pcl::Intensity8u > &cloud, const std::string &layer_id="mono_image", double opacity=1.0) 
//  功能为添加一灰度点云图像到图层。
void  showRGBImage (const unsigned char *data, unsigned width, unsigned height, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能同showMonoImage函数,只是显示图像为彩色图像。  
void  addRGBImage (const unsigned char *data, unsigned width, unsigned height, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能同addMonoImage函数,只是添加图像为彩色图像。  
template<typename T >  
void  showRGBImage (const typename pcl::PointCloud< T >::ConstPtr &cloud, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能同上函数,只是彩色图像数据来源于cloud的对象的彩色图像数据通道。  
template<typename T >  
void  addRGBImage (const typename pcl::PointCloud< T >::ConstPtr &cloud, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能addRGBImage函数,只是彩色图像数据来源于cloud的对象的彩色图像数据通道。  
template<typename T >  
void  showRGBImage (const pcl::PointCloud< T > &cloud, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能与上述函数类似,但输入数据不同。
template<typename T >  
void  addRGBImage (const pcl::PointCloud< T > &cloud, const std::string &layer_id="rgb_image", double opacity=1.0) 
//  功能与上述函数类似,但输入数据不同。
void  showFloatImage (const float *data, unsigned int width, unsigned int height, float min_value=std::numeric_limits< float >::min(), float max_value=std::numeric_limits< float >::max(), bool grayscale=false, const std::string &layer_id="float_image", double opacity=1.0) 
//  在窗口中显示浮点数数据映射来的图像。  
void  addFloatImage (const float *data, unsigned int width, unsigned int height, float min_value=std::numeric_limits< float >::min(), float max_value=std::numeric_limits< float >::max(), bool grayscale=false, const std::string &layer_id="float_image", double opacity=1.0) 
//  在窗口中添加浮点数数据映射来的图像。  
void  showShortImage (const unsigned short *short_image, unsigned int width, unsigned int height, unsigned short min_value=std::numeric_limits< unsigned short >::min(), unsigned short max_value=std::numeric_limits< unsigned short
  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值