我必须在C ++中实现两个数组的互相关,我认为这可能与OpenCV中的模板匹配有关。
我从一个简单的案例开始:
double telo [3] ={0,1,2};
Mat prueba(1,3,CV_64F,telo);
double telo2[3] = {0,1,2};
Mat prueba2(1,3,CV_64F,telo2);
Mat result(1,50,CV_64F);
matchTemplate(prueba,prueba2,result,CV_TM_CCORR);
但它崩溃了,我怎么能这样做?有可能吗?
由于
答案 0 :(得分:3)
错误消息显示仅使用CV_8U
或CV_32F
类型。代码以float
类型运行。如果你想使用双精度,你必须建立自己的函数。
工作代码:
float telo [3] ={0,1,2};
Mat prueba(1,3,CV_32F,telo);
float telo2[3] = {0,1,2};
Mat prueba2(1,3,CV_32F,telo2);
Mat result;
matchTemplate(prueba,prueba2,result,CV_TM_CCORR);
断言消息解释了大多数时候的情况。下次检查控制台输出。