Currently, there are overloads for InputArray and OutputArray that take an std::vector:
template<typename _Tp> _InputOutputArray(std::vector<Mat_<_Tp> >& vec);
It would be great to also have overloads that take an std::array, to make the following code work:
cv::Mat image;
std::vector<cv::Mat> output(3, cv::Mat());
cv::split(image, output); // This works
std::array<cv::Mat, 3> output_array;
cv::split(image, output_array); // This currently doesn't work yet