如何编写新的PCL类
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=244
把代码转换成符合PCL思路和句法的代码,对于第一次接触该基础架构的人会显得比较困难,会提出若干疑问。本小节讲述如何编写新的PCL类以及经常碰到的问题,也解释了在PCL目录树下,与全球PCL用户共享你的代码有哪些优势,这里提倡共享,你也可以把这种观念应用于其他类似的项目中,无论读者是自己直接写,还是改写已有代码,本节的内容都很有帮助,最重要的是可以帮助读者快速阅读了解PCL中的源码。
优势:为什么加入PCL开源开发模式?
大家可能问到的第一个问题,也是我们要回答的问题,就是:为什么要加入PCL,它的优势在什么地方?这个问题假设你已经认定PCL提供的这套工具和库对你的工程是有用的,因此你已经是一个用户了。因为开源项目大多都是志愿工作,开发者通常来自世界各地,所以开发过程有一定进度、有一定的反复是正常的。这意味着:
·开发者不可能事先考虑他们编写的代码片段可能所有的用途,但也奠定了一定基础……
·由于有限的资源和时间,发现解决方案以及应用程序中所有可能出现的漏洞是困难的,由于资源的限制,可能开始的时候进行处理也是不合适的。
在这两种情况下,每个人都很可能遇到了这种情况:要么他们找不到需要的算法或方法,要么现存的方法和应用有漏洞。因此下一步很明显:改变现有代码以适应你的应用程序/问题。当我们在下一节中讨论如何去做的时候,还是要提供我们提出的第一个问题的答案,也就是“为什么要在PCL中共享劳动成果呢?”,依我们的观点,有很多优势存在,引用Eric Raymond的Linus法则:“given enough eyeballs, all bugs are shallow. 给予足够的关注,所有的漏洞都是显而易见的”它的意思是公布你的代码,允许其他人去查看,你的代码就有机会优化和提高鲁棒性,尤其是在出现一个活跃的社区里,PCL就是一个这样的社区。除了上面讲到的,你的贡献可能会有以下众多的作用:
·别人以你的代码为基础建立新的项目;
·你学习其他人新的用法(例如,你设计的时候没有考虑的非常有用的设计);
·无忧无虑的维护者身份(例如,你可以休假一段时间,回来看到你的代码还在更新维护中。其他贡献者会配置它以适应最新的平台、最新的编译器等等);
·你在社区的名声会提高——人人都喜欢受人敬仰。
对于大多数人来讲,上面所提到的都适用。对于另一些人,只有一些适用。为了举例说明代码转换过程,我们选择下面的例子,实现对给定点云中的强度数据应用双边滤波器,把结果保存到磁盘。首先,在本书提供光盘的第3章例1文件夹中,打开名为mainBilateralFilter.cpp的代码文件,这里打开的源代码段包括以下步骤:
·输入输出代码块:从磁盘读数据,向磁盘写数据;
·初始化代码块:用KD树建立一种搜索最近邻的方法;
·实际算法代码块:对每个点进行双边滤波处理。
我们的目的是把给出的源码程序转换成PCL的类,以便能够在其他地方重复使用。
敬请关注PCL(Point Cloud Learning)中国更多的点云库PCL(Point Cloud Library)相关官方教程。
参考文献:
1.朱德海、郭浩、苏伟.点云库PCL学习教程(ISBN 978-7-5124-0954-5)北京航空航天出版社2012-10
如何编写新的PCL类的更多相关文章
- PCL基础3.2-如何编写新的PCL类
1.文件名为mainBilateralFilter.cpp的文件内容如下 #include <pcl/point_types.h> #include <pcl/io/pcd_io.h ...
- C++新特性(类)(转载)
C++新特性(类)里面讲的很清楚,转给大家分享一下 类机制: 类是对某一类对象的抽象:对象是某一类的实例: 类是一种复杂的数据类型,将不同类型的数据和这些数据相关的操作封装在一起的集合体: 通过一道程 ...
- Hibernate的多表查询,分装到一个新的实体类中的一个方法
不知道是否还有其他方法实现,请高人指点. 如果涉及到多张表多字段查询,并且想利用查询出来的字段在界面层构建一个新的实体类,可以使用这种方法: 如果查询出来的多字段中,有多个字段的名字都相同(如想查询出 ...
- 一个由印度人编写的VC串口类
http://www.cnblogs.com/lwngreat/p/4098374.html 软件介绍 一个由印度人编写的VC串口类(也是一种VC串口控件),他还配合这个类写了VC 串口通信方面的一些 ...
- C#放缩、截取、合并图片并生成高质量新图的类
原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...
- JDK1.8新特性——Optional类
JDK1.8新特性——Optional类 摘要:本文主要学习了JDK1.8新增加的Optional类. 部分内容来自以下博客: https://www.cnblogs.com/1ning/p/9140 ...
- Directx11教程(8) 一个新的camera类
原文:Directx11教程(8) 一个新的camera类 本章我们将替换掉CameraClass类,实现一个稍微靠谱点的摄像机类.并通过Q,W,E,A,S,D,Z,X,C等按键实现摄像机的 ...
- 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类
098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...
- 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类
099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...
随机推荐
- Unity3D研究院编辑器之脚本设置ToolBar及脚本设置顶视图
Unity版本5.3.2 如下图所示,ToolBar就是Unity顶部的那一横条.这里的所有按钮一般情况下都得我们手动的用鼠标去点击.这篇文章我们说说如果自动操作它们 1.自动点击左边四个按钮 (拖动 ...
- Unix环境高级编程—进程控制(二)
一.函数wait和waitpid 今天我们继续通过昨天那个死爹死儿子的故事来讲(便于记忆),现在看看wait和waitpid函数. #include<sys/wait.h> pid_t w ...
- ES5中的类与继承
最近在重新复习TypeScript,看到类这块的时候自然会和ES5中的类写法进行对比加深印象. 发现ES5的类与继承一些细节还是挺多的,时间久了容易忘记,特此记录下. 首先是ES5的类定义,这没什么好 ...
- 【题解】P4886快递员
[题解]P4886 快递员 淀粉质好题!!!加深了我对点分治的理解.最近分治学了好多啊. 题目大意 给定你一颗有边权的树,再给你\(m\)和点对,请你在树上选出来一个点,使得所有点对到这个点的距离的最 ...
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Zhuo' did not find a matching property.
eclipse里面配置tomcat方法:window -- show view -- other -- 找到servers 点击finish 就会出现servers选项卡在选项卡中右键鼠标 new - ...
- 微信小程序配置详解
在之前已经通过微信公众平台的官方网站https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html,注册好小程序并且登录成功后(这里主 ...
- java开发环境搭建-1
安卓开发所需软件: JDK Eclipse Android-Sdk ADT 其中jdk的下载和安装,详细见http://www.cnblogs.com/zhuxiaohui/p/3620685.htm ...
- hihocoder hiho第38周: 二分·二分答案 (二分搜索算法应用:二分搜索值+bfs判断可行性 )
题目1 : 二分·二分答案 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后 ...
- Cannot load JDBC driver class 'com.mysql.jdbc.Driver '
最近在学JAVA, SSM, 照着网上的例子系统启动后总是报这个错(IDE :IEDA): HTTP Status 500 - Request processing failed; nested ex ...
- IOC/DI控制反转与依赖注入
IOC/DI控制反转与依赖注入 IOC和DI表现的效果的是一样的只不过对于作用的对象不同,有了不一样的名字. 先用一个现实的例子来说明IOC/DI表现出来的效果.