matrix.h

matrix.hmatrix.h

matrix.h头文件实现功能如其名,它定义了两个类,分别为:

class Matrix_;
class Matrix;

其中Matrix继承于Matrix_,其中Matrix_提供了对矩阵对象最为基本的访问操作,序列化操作。而Matrix是用了模版的方法扩大了矩阵对象的灵活性,让其适用于更多的数据类型。

下面我们来看看Matrix_类。

类成员:

size_t rows;
size_t cols;
size_t stride;
flann_datatype_t type;
uchar * data;

其中rows标明矩阵的行数,cols表明矩阵的列数,stride为步伐,也就是一个特征的长度,单位字节。type标明该矩阵所储存的数据类型。data表明该矩阵指向的数据结构的首部(头指针)。

类方法:

Matrix_();
Matrix_(void * data_,size_t rows_,size_t cols_,flann_datatype_t type_,size_t stride_=0));
inline void* operator[](size_t index)const ;
void * ptr() const;
void serialize(Archive& ar);

前两个为构造函数,不多叙述。
第三个为重载操作符[],根据索引号获得相应特征的头指针。
void * ptr() const,直接返回data。
seriallize(Archive & ar);将对象矩阵序列化,若Archive类型为OutputArchive,则是将矩阵存储在OutputArchive对应的文件中,存储的顺序为rows,cols,stride,type,data对应的数据块;若Archive类型为InputArchive,则是将在InputArchive对应的文件中的数据加载到该对象中,加载的顺序于存储的顺序相同。
不懂Archive的,可以参考Archive

Matrix类继承于Matrix_,它更加灵活,其重写了ptr(),operator[]这两个函数,返回值为对应类型的指针。

今天的文章matrix.h分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8618.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注