OpenCV数据类型的类型特征
type traits for OpenCV data types
我有一个模板方法,其中构造了一个Mat对象。此矩阵的类型取决于模板实现:
template <typename T>
void createMatrixAndDoStuff(int rows, int cols){
// ...
Mat A(rows,cols,getCVtype<T>::value);
// ...
}
在这种情况下,我使用了一个基本特征,如果T=float
等,getCVType<T>::value
将返回CV_32F。我知道这很愚蠢,因为我本可以使用Mat_<T>(rows,cols)
,而忘记为此使用特征。但这让我思考:OpenCV中是否有任何可用的特性(或任何模板材料)可以在编译时从类型推断类型宏(CV_32F、CV_8U…)
opencv确实具有此任务的类型特征,它被称为cv::DataType,您不需要自己创建一个
static_assert(cv::DataType<float>::type == CV_32F,
"cv::DataType<float>::type == CV_32F");
static_assert(cv::DataType<uchar>::type == CV_8U,
"cv::DataType<uchar>::type == CV_8U");
static_assert(cv::DataType<cv::Vec3b>::type == CV_8UC3,
"cv::DataType<cv::Vec3b>::type == CV_8UC3");
相关文章:
- 如何将高维数据映射到特征类型?
- 将平面阵列重塑为复杂的特征类型
- 以特征类型作为参数的泛型函数回调
- 如何通过opencv中的程序参数定义特征类型?
- 在编译时检查特征类型保存的数据在内存中是否连续
- 专门针对特征类型的功能
- 具有特征类型输出的特征二进制 Expr
- 使用具有STL容器和STD :: vector的特征类型
- 从指针进行特征3类型的强制转换/复制(溢出uint8_t)
- 使用 python 扩展在 gdb 中打印特征类型时出现问题
- 将特征类型与 boost::bind 一起使用是否会自动违反 Eigen 的"only pass by reference"规则?
- NVIDIA NVCC 在使用模板特征类型时更改编译时间常量
- 固定大小的特征类型作为参数
- 特征类型类型定义失败,并显示 C4430
- 检查类型是否为特征 3 类型
- 传递std::迭代器,指向具有特征类型的向量
- visual studio 2012中对特征类型向量的自动矢量化表现不佳
- 子类特征类型
- 使用一个特征类型内提升图
- 特征c++类型转换