博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
建立文件结构
阅读量:4677 次
发布时间:2019-06-09

本文共 2228 字,大约阅读时间需要 7 分钟。

博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=246

有两种不同的方法来建立结构:1)分别编写代码,作为独立的PCL类,在PCL代码树之外;2)直接把文件建立在PCL代码目录树里面,我们来阐述后者的操作方式,因为后者是最终结果有利于PCL库发展壮大,也是因为它有一点复杂(也就是,它包含几个附加的步骤)。对于前者,你可以同样操作,只是不需要你在PCL代码目录树中建立对应的文件组织形式,也不需要了解cmake的使用。

假设我们想要新的算法成为PCL滤波库的一部分,我们开始先在代码树目录filters下新建三个不同的文件:

·include/pcl/filters/bilateral.h——包含所有的定义和声明;

·include/pcl/filters/impl/bilateral.hpp——包含模板类的具体实现;

·src/bilateral.cpp——包含具体的不同点类型的模板类实例化。

我们需要给新的类命名,把它叫做BilateralFilter,PCL滤波器接口规定每个算法必须有两个声明和实现必须可供使用:一个操作PointCloud<T>,一个操作PointCloud2。本小节只讲前者操作PointCloud<T>的实现。

bilateral.h

前面提到过,bilateral.h头文件包含所有和BilateralFilter类相关的声明,下面是最小的框架:

#ifndef PCL_FILTERS_BILATERAL_H_#define PCL_FILTERS_BILATERAL_H_#include 
namespace pcl{template
class BilateralFilter:public Filter
{ }; }#endif // PCL_FILTERS_BILATERAL_H_

bilateral.hpp

新建bilateral.hpp和bilateral.cpp两个文件,首先是bilateral.hpp:

#ifndef PCL_FILTERS_BILATERAL_IMPL_H_#define PCL_FILTERS_BILATERAL_IMPL_H_#include 
#endif // PCL_FILTERS_BILATERAL_H_

这个应该是明确的,还没有给BilateralFilter声明任何方法,因此它没有任何具体实现。

bilateral.cpp

再编写bilateral.cpp文件:

#include 
#include

因为在PCL(1.X)中编写模板代码,这里模板参数是点的类型,我们要显式地在bilateral.cpp中说明所有点类型对应模板类的定义,因此用户在使用我们定义的BilateralFilter编译代码的时候不必花费额外的编译时间。为此,我们需要添加include模板类实例化头文件(bilateral.hpp)。

CMakeLists.txt

把所有新建的文件增加到PCL滤波器的CMakeLists.txt(在\PCL源码根目录\filters\下)文件中,就可以开始编译链接过程,对于CMakeLists.txt的更改就完成了,剩下就是下面对类相关文件内容的填充了。

# Find "set (srcs", and add a new entry there, e.g.,set (srcssrc/conditional_removal.cpp      # ...src/bilateral.cpp                                   //为该类而添加的语句      ) # Find "set (incs", and add a new entry there, e.g.,set (incsinclude pcl/${SUBSYS_NAME}/conditional_removal.h      # ...include pcl/${SUBSYS_NAME}/bilateral.h               //为该类而添加的语句      ) # Find "set (impl_incs", and add a new entry there, e.g.,set (impl_incs      include/pcl/${SUBSYS_NAME}/impl/conditional_removal.hpp      # ...      include/pcl/${SUBSYS_NAME}/impl/bilateral.hpp  //为该类而添加的语句

敬请关注PCL(Point Cloud Learning)中国更多的点云库PCL(Point Cloud Library)相关官方教程。

 

参考文献:

1.朱德海、郭浩、苏伟.点云库PCL学习教程(ISBN 978-7-5124-0954-5)北京航空航天出版社2012-10

 
 
 

转载于:https://www.cnblogs.com/flyinggod/p/8596371.html

你可能感兴趣的文章
格网与四叉树索引
查看>>
Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?...
查看>>
多张照片拍摄、图片浏览
查看>>
html(5) css
查看>>
Azure Web连接到Azure MySql Db
查看>>
《麻辣江湖》即将上线!
查看>>
Mybatis中mapper.xml文件判断语句中的单双引号问题
查看>>
frameset和frame
查看>>
饥饿的小易(规律,同余大数)
查看>>
ats透明代理
查看>>
PHP 小代码
查看>>
2016/03/16 codes
查看>>
2018年7月21日工作总结
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
What does the dot after dollar sign mean in jQuery when declaring variables?
查看>>
windows registry
查看>>
jquery 动画总结(主要指效果函数)
查看>>
【BZOJ4155】[Ipsc2015]Humble Captains
查看>>
【事件】阻止事件的冒泡
查看>>