我在 Mat 类型的 OpenCV 中使用一些变量并调用模板函数。但是参数模板不能推导出来,因此会产生编译错误
调用函数:
Rot2Homo(rot, tmpMat, ssTo);
调用函数模板:
template <class NumType>
void Rot2Homo(cv::Mat_<cv::Vec<NumType, 1>> rot, cv::Mat_<cv::Vec<NumType, 1>> trans, cv::Mat& Homo)
{
Homo = cv::Mat::zeros(4,4, cv::Vec<NumType, 1>);
rot.copyTo(Homo(Range(0,3), Range(0,3)));
trans.copyTo(Homo(Range(0,3), Range(3,4)));
Homo.at<cv::Vec<NumType, 1>>(3,3) = 1;
return Homo;
}
编译错误:
error C2784: 'void Rot2Homo(cv::Mat_<cv::Vec<NumType,1>>,cv::Mat_<cv::Vec<NumType,1>>,cv::Mat &)' : could not deduce template argument for 'cv::Mat_<cv::Vec<NumType,1>>' from 'cv::Mat'
这种类似的用法在链接中被指出并成功解决。但是这里出现了错误。
感谢您的任何提示!