opencv MAT object Array初始化时的动态分配

时间:2014-02-08 16:08:03

标签: opencv

我是opencv的新手并且对cpp的了解较少。我需要动态创建一个具有给定初始值的Mat对象数组,这给了我错误

Mat *M=new Mat[variable](rows,cols,CV_8UC1,Scalar(0));

错误:ISO C ++禁止在数组new [-fpermissive]

中初始化

请为我的语义建议正确的语法

1 个答案:

答案 0 :(得分:2)

您需要在循环中初始化它们:

Mat *M = new Mat [variable];
for (int i=0; i<variable; i++)
    M[i].create(rows,cols,CV_8UC1,Scalar(0));

或使用三维垫:

int dims[3] = {variable,rows,cols};
Mat M(3,dims,CV_8UC1,Scalar(0));

但是当你想用imread() or imwrite()读/写图像时,我建议使用第一种解决方案。