![]() |
OpenCV 4.12.0
开源计算机视觉
|
OpenCV 原始数据类型的模板“特征”类。 更多...
#include <opencv2/core/traits.hpp>
OpenCV 原始数据类型的模板“特征”类。
OpenCV 原始数据类型是 unsigned char、bool、signed char、unsigned short、signed short、int、float、double 或这些类型的值的元组,其中元组中的所有值都具有相同的类型。列表中的任何原始类型都可以由 CV_<bit-depth>{U|S|F}C(<number_of_channels>) 形式的标识符定义,例如:uchar CV_8UC1,3 元素浮点元组 CV_32FC3,等等。能够存储此类原始数据类型的单个实例的通用 OpenCV 结构是 Vec。 此类类型的多个实例可以存储在 std::vector、Mat、Mat_、SparseMat、SparseMat_ 或任何其他能够存储 Vec 实例的容器中。
DataType 类主要用于提供此类原始数据类型的描述,而无需向相应的类添加任何字段或方法(实际上不可能向原始 C/C++ 数据类型添加任何内容)。 这种技术在 C++ 中被称为类特征。 使用的不是 DataType 本身,而是它的专门版本,例如
这个类的主要目的是将编译时类型信息转换为 OpenCV 兼容的数据类型标识符,例如
因此,即使这种类型不是 OpenCV 原生的,这些特征也用于告诉 OpenCV 您正在使用哪种数据类型。 例如,上面的矩阵 B 初始化被编译,因为 OpenCV 定义了适当的专门模板类 DataType<complex<_Tp> > 。 这种机制对于通用算法的实现也很有用(并且在 OpenCV 中以这种方式使用)。