如果我有这样的变量:
cv::Mat data[3];
如何在需要输入的函数中传递它:
void function_name(std::vector<cv::Mat>& data);
答案 0 :(得分:2)
创建一个向量,并使用数组对其进行初始化,然后将其传递给function_name()
函数:
std::vector<cv::Mat> v(data, data + (sizeof data / sizeof data[0]));
function_name (v);
其他方法可能是传递临时对象,但是在这种情况下,function_name()
参数应该为const
。仅在不对data
中的参数function_name()
进行任何更改的情况下才可行:
void function_name(const std::vector<cv::Mat>& data);
^^^^^
进行此更改后,您可以像这样调用function_name()
函数:
function_name (std::vector<cv::Mat>(data, data + (sizeof data / sizeof data[0])));
答案 1 :(得分:0)
您可以编写一个函数,该函数需要一个cv::Mat*
并返回一个std::vector<cv::Mat>
std::vector<cv::Mat> ptrToVec(cv::Mat* matPtr){
int index=0;
std::vector<cv::Mat> ret;
while(matPtr)
ret.push_back(matPtr[index++]);
return ret;
}