我是opencv的新手并且对cpp的了解较少。我需要动态创建一个具有给定初始值的Mat对象数组,这给了我错误
Mat *M=new Mat[variable](rows,cols,CV_8UC1,Scalar(0));
错误:ISO C ++禁止在数组new [-fpermissive]
中初始化请为我的语义建议正确的语法
答案 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()
读/写图像时,我建议使用第一种解决方案。