【发布时间】:2023-03-27 17:40:02
【问题描述】:
当我尝试将一个 c 数组提供给将 Mat 的 C 数组转换为 C++ 向量的函数时,我在这一行 vector<Mat> *std_carrayTovectorm(m, 2); 上收到以下错误消息。我认为我的代码是正确的,但不确定是否是我的 std_carrayTovectorm 函数是问题所在。如何编辑我创建的 C 数组或 std_carrayTovectorm 函数以从 C 数组创建 Mat 的向量。
谢谢
//表达式列表在初始化器中被视为复合表达式 //从‘int’到‘std::vector*’的无效转换
typedef vector<Mat> vector_Mat;
vector_Mat* std_carrayTovectorm(Mat* a, size_t len) {
vector<Mat>* v = new vector<Mat>;
for(size_t i = 0; i < len; i++)
v->push_back(a[i]);
return v;
}
int main( int argc, char** argv )
{
Mat img1 = imread( "/home/w/d1");
Mat img2 = imread( "/home/w/d1");
Mat* m[2] = { new Mat (img1), new Mat (img2) };
vector<Mat> *std_carrayTovectorm(m, 2);
return 0;
}
【问题讨论】:
-
m是一个指向Mat的指针数组,std_carrayTovectorm需要一个Mat数组。