Как инициализировать массив cv :: Mat со строками, столбцами и значением? (В классе c ++) - PullRequest
0 голосов
/ 11 апреля 2019

Как инициализировать массив с 10 Mat? Я пытался: (работает в функции, но не в классе)

cv::Mat outIm[10];
for(int i=0; i<10; i++)
  outIm[i] = Mat(rows, cols, CV_8UC3, cv::Scalar(0,0,0));

Есть ли что-то вроде ниже легального?

cv::Mat im[10](rows, cols, CV_8UC3);  //not working

1 Ответ

0 голосов
/ 11 апреля 2019

Это одно из возможных решений:

class Foo
{
 // Function which returns a zero initialised cv::Mat
 static std:array<cv::Mat,10> MakeInitMatArray() {return {cv::Mat(rows, cols, CV_8UC3, cv::Scalar(0,0,0))};}

 // In-class default-initializer
 std:array<cv::Mat,10> outIm = MakeInitMatArray();

 // ... rest of Foo class
};
...