点云库PCL学习教程第7章可视化

上传人:新** 文档编号:512634484 上传时间:2023-10-04 格式:DOC 页数:136 大小:1.20MB
返回 下载 相关 举报
点云库PCL学习教程第7章可视化_第1页
第1页 / 共136页
点云库PCL学习教程第7章可视化_第2页
第2页 / 共136页
点云库PCL学习教程第7章可视化_第3页
第3页 / 共136页
点云库PCL学习教程第7章可视化_第4页
第4页 / 共136页
点云库PCL学习教程第7章可视化_第5页
第5页 / 共136页
点击查看更多>>
资源描述

《点云库PCL学习教程第7章可视化》由会员分享,可在线阅读,更多相关《点云库PCL学习教程第7章可视化(136页珍藏版)》请在金锄头文库上搜索。

1、第7章可视化可视化(Visualization)是利用计算机图形学和图像处理 技术,将数据转换成图形或图像在屏幕上显示出来, 并进行交互处理的理论、方法和技术。它涉及计算机 图形学、图像处理、计算机视觉、计算机辅助设计等 多个领域,成为研究数据表示、数据处理、决策分析 等一紊列问题的综合我术。可视化技术最早运用于计算机科学中,并形成了可视化 技术的一个重要分支一一科学计算可视化(Visualization in Scientific Computing)。科学计算可 视化能够把科学数据,包括测量获得的数值、图像或 是计算中涉及、产生的数字信息变为直观的、以图形 图像信息表示的、随时间和空间变化

2、的物理现象或物 理量呈现在研究者面前,使他们能够观察、模拟和计 算。目前正在发展的虚拟现实技术,所有这些都依赖于计算机图形学、计算机可视化技术的发展,已涉及建 筑、产品设计、医学、地球科学、流体力学、虚拟农 业等领域。本章首先对常用的点云可视化概念进行介绍,其次对 PCL的可视化相关模块及类进行简单说明,最后通过 应用实例来展示如何对PCL中可视化模块进行灵活运 用。本章各小节目录7.1可视化相关概念及算法简介7.2 PCL中visualization模块及类介绍7.3应用实例解析7.1可视化相关概念及算法简介可视化方面相关概念比较常见,此处不进行详细列 岀。7.2 PCL中visualiza

3、tion模块及类介绍PCL中pcl_visualization库提供了可视化相关的数据结 构和纟H件,其主要是为了可视化其他模块的算法 处理后的结果,可直观的反馈给用户。其依赖于 pcl_common、pcl_range_image、pcl_kdtree、 pcl_IO模块以及VTK外部弃源可视化库o7.2.1 pcl_visualization 模块中类说明pcLvisualization模块中目前共有28个类,以后有可能增 加以下类:1. class pcl:visualization:CloudViewer类CloudViewer实现创建点云可视化的窗口,以及相关的 可视化功能。类Clo

4、udViewer关键成员函数:CloudViewer(c onst std:string & window _n ame)构建可视化点云窗口,窗口名为window_name0CIoudViewer()注销窗口相关资源。void showCloud(const ColorCloud:ConstPtr& cloud, const std:string& cloudname二cloucT)在可视化点云窗口中显示cloud对应的点云,考虑到多个 点云用键值cloudname来限定具体是哪个点云。void showCloud(const ColorACIoud:ConstPtr& cloud, cons

5、t std:string & cloud name 二cloud)void showCloud(const GrayCloud:ConstPtr&cloud, const std:stri ng&cl oud name 二cloud)void showCloud(const MonochromeCloud:ConstPtr& cloud, const std:string& cloudname二cloud)以上3个函数分别实现对不同类型点云的在窗口中的显bool wasStopped(int millis_to_wait=l)判断用户是否已关闭窗口,如果是则需要注销窗口, millis_to_

6、wait为在注销窗白之前的尊待。void runOnVisualizationThread(VizCallable x, const std:string& key二callable)在窗口运行期间处理X回调函数,key为键值标识此回调 函数,直到窗口关闭。void runOnVisualizationThreadOnce(VizCallable x)同上,但只调用回调函数一次。void removeVisualizationCallablefconst std:stringkey 二callable) 删除key对应的回调函数。boost:signals2:c onn ection regi

7、sterKeyboardCallback(void(*callback)(c on stpcl:visualizati on:KeyboardEvent& void*), void* cookie=NULL)注册键盘事件回调函数,cookie为回调时传递的参数, callback为回调函数指针。templateboost:signals2:connection registerKeyboardCallback(void(T:*callback)(const pcl:visualization:KeyboardEvent&, void*),T&nstance, void* cookie=NULL

8、)功能同上,其中instance引用指向实现该回调函数的对 MoBoost:sig nals:c onn ecti on registerMouseCallback(void(*callback)(c onst pcl:visualization:MouseEvent&, void*), void*cookie=NULL) 注册鼠标事件回调函数,cookie为回调时传递的参数, callback为回调函数指针。templateboost:sig nals2:c onn ecti on registerMouseCallback(void(T:*callback)(const pcl:visua

9、lization:MouseEvent&, void*), T&instanee, void*cookie=NULL)功能同上,其中instance引用指向实现该回调函数的对 Moboost:sig nals:c onn ecti onregisterPoi ntPicki ngCallback(void(*callback)(c onst pcl:visualization:PointPickingEvent&, void*), void* cookie=NULL)点拾取事件回调函数,cookie为回调时传递的参数, callback为回调函数指针。template boost:sig na

10、ls:c onn ecti onregisterPoi ntPicki ngCallback(void(T:*callback)(c onstpcl:visualization:PointPicki ngEve nt&, void*), T& in st a nee,void* cookie=NULL)功能同上,其中instance引用指向实现该回调函数的对 Mo2. class pcl:visualization:FloatlmageUtils类Floatlmagelltils针对二维浮点数组的可视化类。类Floatlmagelltils关键成员函数:static void getColor

11、fo汗loatjfloat value, unsigned char& r, unsigned char& g, unsigned char& b)静态成员,给定value属于0,1,返回r、g b颜色值。static void getColorForAngleffloat value, unsigned char& r, unsigned char &g, unsigned char &b)静态成员,给定value属于卜PI, PI,返回r、g b颜色值。static void getColorForHalfAngleffloat value, unsigned char& r,b)unsi

12、gned char &g, unsigned char&静态成员,给定value属于0, PI,返回r、g b颜色值。static unsigned char* getVisuallmagejconst float *floatjmage, int width, int height, float min_value=- std: numeric_limitsvfloat:i nfin ity(), float max_value=std:numeric_limitsvfloat:infinity(), bool gray_scale=false)静态成员,float_image为给定的浮点数

13、二维数组,返回 3XwidthXheight的RGB图像,min_value max_value 为给定浮点数的最小和最大值,审于归一化一 floatjmage中浮点数,如果grayscale为真,则输出图 像仍鬲RGB格式,但是灰度图像。static unsigned char *getVisualAnglelmage(const float*anglejmage, int width, ing height)功能同上,利用getColorForAngle来决定返回RGB的各个 值。static unsigned char* getVisualHalfAnglelmage(const flo

14、at*anglejmage, int width, int height)功能同上,利用getColorForHalfAngle来决定返回RGB的 各个值。3. class pcl:visualization:PCLHistogramVisualizer类PCLHistogramVisualizer实现对PCL中的直方图的可视化。类PCLHistogrmVisualizer的关键函数说明:void spinOnce(int time=l)刷新屏幕显示一次,time为允许重新渲染一次的最大时 间ms数。void spin()调用内部渲染循环。void setBackgroundColor(con

15、st double &r, const double &匕const double b为颜色,viewport为那个 视口。templatebool addFeatureHistogram(const pcl:PointCloud& cloud, int hsize, const std:string& id二cloucT: int win_width=640, int win_height=200)在新窗口中显否cloud中存放的直方图,窗口大小宽度为 win_width,高度为win_height。考虑到cloud中有可能有多个点云,id来指定某个点云。bool addFeatureHistogram(const sensor_msgs:PointCloud2&cloud, const std:string& file_nam巳 const std:string&id二cloucT: int win_width=640, int win_height=200)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号