我使用Mat_类型作为输入编写了一个函数,该函数的语法如下:
#include<iostream>
#include"opencv2\opencv.hpp"
using namespace std;
using namespace cv;
Mat_<double> histcost(Mat_<double> BH1, Mat_<double> BH2) {
Mat_<double> output;
...
return output;
}
但是当我尝试编写此函数的头文件时:
#pragma once
extern Mat_<double> histcost(Mat_<double> BH1, Mat_<double> BH2);
它给我一个错误:Mat_不是模板。
我对功能管理不是很熟悉,如果有人可以帮助我,我将非常感谢!
答案 0 :(得分:0)
不要使用Mat_< >
,而要使用常规的cv::Mat()
cv :: Mat可以包含任何类型的数据,您无需告诉它类型。
Mat_<double>
是一种特殊的捷径,可以直接从固定数据制作cv:Mat,除非真正进行性能调优并知道自己在做什么,否则不要在任何地方使用它。
Mat_ < >
语法示例(仅用于搜索)
Mat X = (Mat_<double>(4, 4) <<0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14,15);