PCL 如何编写新的PCL类

把代码转换成符合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的类,以便能够在其他地方重复使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值