saving.h
来源:互联网 发布:定义结构体数组 编辑:程序博客网 时间:2024/06/01 19:45
大家知道FLANN库提供关于ANN问题的多种算法,包括KDTREE,KMEANS,HIERARCHICAL_CLUSTERING,等多种算法,我们要将我们训练好的模型存储,就需要一个文件头来存储我们模型的基本信息,saving.h这个头文件就定义了这样一个结构体:
struct IndexHeader;
成员变量:
char signature[16];char version[16];flann_datatype_t data_type;flann_algorithm_t index_type;flann_distance_t distance_type;size_t rows;size_t cols;
version存储的是本FLANN版本信息,我使用的是1.8.4
data_type 存储的是模型使用的数据类型。
index_type 指明的是模型使用的算法。
distance_type 指明该算法所用的距离类型(比如L1,L2等)。
rows 指明模型points的数量。
cols 指明points的大小。
成员方法:
IndexHeader();serialize(Archive & ar);
IndexHeader()为构造函数,主要初始化version,和signature。
serialize是序列化本检索头,当Archive类型是LoadArchive时,将LoadArchive中stream对应的文件中的检索头,加载到本检索头中。当Archive类型是SaveArchive是,将本检索头存储到SaveArchive对应的文件中。LOAD或SAVE的顺序为,signature,version,data_type ,index_type,rows,cols。
不熟悉ARCHIVE类的,可参考Archive
方法
void save_header(FILE * stream, const Index & index);
该方法是根据index(我们也可以称作模型)来创建相应的检索头,并将检索头存储带stream对应的文件中。
方法
inline IndexHeader load_header(FILE * stream);
该方法是从文件流stream中,创建返回一个检索头。
namespace serialization{ENUM_SERIALIZER(flann_algorithm_t);ENUM_SERIALIZER(flann_centers_init_t);ENUM_SERIALIZER(flann_log_level_t);ENUM_SERIALIZER(flann_datatype_t);}
这四个define,是定义对flann_algorithm_t,flann_centers_init_t,flann_log_level_t,flann_datatype_t这四种类型的序列化。
- saving.h
- saving data - Saving Files
- Saving Princess
- Saving HDU
- : saving data
- Saving Files
- Saving HDU
- Saving Files
- Saving Files
- Saving HDU
- Saving Data
- Saving Data
- Saving HDU
- Saving HDU
- Saving HDU
- Saving HDU
- Saving HDU
- HDU Saving
- H2O框架简介(转载)
- 【Java基础】String StringBuffer StringBuilder
- 阅读笔记:Gated Bi-directional CNN for Object Detection
- combobox无法显示选中的数据,都是undefined
- C/C++/JAVA 二进制/十六进制 的应用 :大数(超过32位二进制数),按位逻辑运算,属性值设置,等
- saving.h
- Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
- CSDN-markdown编辑器使用教程
- 【python图像处理】极坐标变换及插值算法
- redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类
- 关于JavaScript 三种绑定事件方式之间的区别以及对应的解绑(整理)
- Android中Hook Instrumentation 的实现
- 关于局域网共享问题
- block:解决成员变量的循环引用的问题