OpenCV 4.11.0
开源计算机视觉库
|
OpenCV 基本数据类型的模板“特性”类。 更多…
#include <opencv2/core/traits.hpp>
OpenCV 基本数据类型的模板“特性”类。
OpenCV 基本数据类型是指无符号字符、布尔值、有符号字符、无符号短整型、有符号短整型、整型、浮点型、双精度浮点型,或其中一种类型的多个值的元组,其中元组中的所有值都具有相同的类型。列表中的任何基本类型都可以通过 CV_<位深度>{U|S|F}C(<通道数>) 形式的标识符来定义,例如: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 中就是这样使用的)。