【发布时间】:2014-08-27 06:36:04
【问题描述】:
我有一个模板方法,其中构造了一个 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、...)?
【问题讨论】:
-
AFAIK 没有,但您可以轻松地自己实现它们。
-
@GermánDiago 这就是我最初的想法,我已经实现了这个
getCVtypetrait thingy :) 但是,奇怪的是,OpenCV API 中没有提供任何方法,不是吗? -
嗯,API 主要来自 C,所以如果他们不提供,我不会感到惊讶。
标签: c++ templates opencv typetraits