我尝试将 Opencv 中的表单矩阵转换为 Armadillo 中的矩阵
我在 this link 中找到了这个函数
但是当我尝试调用它时出现错误:
- 错误 C2783:“arma::Mat cvMat2armaMat(cv::Mat &)”:无法推断“T3”的模板参数
- IntelliSense:函数模板“cvMat2armaMat”的实例与参数列表不匹配
这是函数:
template<class T3>
arma::Mat <T3> cvMat2armaMat(cv::Mat & cvMatIn)
{
return armaConv (cvMatIn.data, cvMatIn.rows, cvMatIn.cols,false);
}
这是函数调用(调用func时报错)
cv::Mat CurrentImage = imread(path, 0);
arma::mat singleImage = cvMat2armaMat (CurrentImage);
我该怎么办?
最佳答案
您需要指定 arma::mat<XXX>
的类型那cvMat2armaMat()
返回。
什么是 armaConv
?
也许你的意思是:
template<class T3>
arma::Mat <T3> cvMat2armaMat(cv::Mat & cvMatIn)
{
return arma::Mat <T3> (cvMatIn.data, cvMatIn.rows, cvMatIn.cols,false);
}
调用是这样的:
auto singleImage = cvMat2armaMat<float>(CurrentImage);
或者你需要 switch
在 cv::Mat
上类型。
关于c++ - 将 CV::Mat 转换为 Arma::mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26118862/