PCL基础
程序员文章站
2022-07-13 21:29:12
...
这部分主要是规范代码风格,为基于PCL开发自己的扩展。然后实例详解在PCL框架下如何建立我们自己定义类,最后介绍PCL中已经有的点的类型以及如何自定义点类型以满足扩展需求。
PCL C++编程规范
代码规范性和风格的重要性,不用多说了。
PCL推荐的命名规范
上面这个牵扯到头文件过引用问题,上面的宏定义解决了这个问题。
总之,要重视下划线的应用。
类的驼峰,命名。
PCL推荐的缩进与格式
真严格。。。
返回类型不能与函数名在一行? 牛逼。
不同编译器自动格式化代码的方式不一样。
什么是共享指针?迷惑中。。。回头补上。
上面的原则懂了没有啊?
如何编写新的PCL类
建立文件结构
这里没太懂。。。每个算法必须有两个声明和实现?
1. bilateral.h
我们前面说了,bilateral.h头文件包含所有和BilateralFiler类相关的声明,下面是最小的框架:
#ifndef PCL_FILTERS_BILATERAL_H_
#define PCL_FILTERS_BILATERAL_H_
#include <pcl/filters/filter.h>
namespace pcl
{
template<typename PointT>
class BilateralFilter:public Filter<PointT>
{
};
}
#endif PCL_FILTERS_BILATERAL_H_
2. bilateral.hpp
新建bilateral.hpp和bilateral.cpp两个文件,首先是bilateral.hpp:
# ifndef PCL_FILTERS_BILATERAL_H_
#define PCL_FILTERS_BILATERAL_H_
#include <pcl/filters/bilateral.h>
# endif PCL_FILTERS_BILATERAL_H_
这个应该是明确的,还没有BilateralFilter声明方法,因此他没有具体实现。
3. bilateral.cpp
再编写bilateral.cpp文件
#include <pcl/filters/bilateral.h>
#include <pcl/filters/impl/bilateral.hpp>
这里模板参数是点的类型,我们显示的在bilateral.cpp中说明所有点类型对应模板类的定义,我们需要添加include模板类实例化头文件(bilateral.hpp)。
4. CMakeList.txt
把所有新建文件增加到PCL滤波器的CMakeList.txt(在/PCL源码根目录/filters/下)文件中,就可以开始编译链接过程了,对于CMakeList.txt的更改就可以完成了,剩下的就是下面对类相关文件内容的填充了。
填写类的内容