前言
最近需要借鉴PCL的设计写一个处理点云的程序,主要参考了其中NormalEstimation
部分的源码。这里总结一下该部分源码的结构。
当前参考的PCL版本是 1.10.0。
NormalEstimation
NormalEstimation
类的继承关系如下
NormalEstimation->Feature->PCLBase
这三个类的定义位于源码根目录下的
- common/include/pcl/pcl_base.h
- features/include/pcl/features/features.h
- features/include/pcl/features/normal_3d.h
PCL设计中每个类的部分implementation放入了一个独立的hpp文件,这些文件的位置为
- common/include/pcl/impl/pcl_base.hpp
- features/include/pcl/features/impl/features.hpp
- features/include/pcl/features/impl/normal_3d.hpp
主要观察NormalEstimation
对象如何进行normal的计算。
kdtree和搜索函数
在使用NormalEstimation
对象时,需要指定一个kdtree用于搜索最近点,并且最终调用对象的compute()
接口计算Normal。k