我正在使用OpenCV来计算从某个矩阵X(16x128维度)获取的两行的互相关。这就是我所做的:
cv::Mat channel1(1,128,CV_32F, X.row(1).clone()); //take the first row of matrix X
cv::Mat channel2(1,128,CV_32F, X.row(10).clone()); //take the 10th row of matrix X
cv::Mat result;
cvMatchTemplate(channel1,channel2,result, CV_TM_CCORR);
但是,我收到以下错误: "错误:没有构造函数的实例" cv :: Mat :: Mat"匹配参数列表"。任何人都可以帮我解决这个问题。提前谢谢。
答案 0 :(得分:0)
您发布的代码存在一些问题:
1)没有cv :: Mat构造函数的实例与初始化“channel1”和“channel2”矩阵的方式相匹配。
解决方案:
以这种方式声明你的矩阵:
cv::Mat channel1(X.row(1).clone()); //take the first row of matrix X
cv::Mat channel2(X.row(10).clone()); //take the 10th row of matrix X
2)cvMatchTemplate是旧式的C-api,(afaik)与面向C ++的cv :: Mat不兼容。
解决方案:
3)更好的是,您可以直接使用matchTemplate:
cvMatchTemplate(X.row(1).clone(),X.row(10).clone(),result, CV_TM_CCORR);
希望它有所帮助。