假设我将相同大小、深度和通道图像/矩阵收集到一个vector
. 所以,这些图像是r*c*d
每一个,我m
在我的向量中都有它们,如下所示。
vector<string> imgs; --> there are m image paths in these, all are r*c*d resolution
vector<Mat> vec;
for (auto img: imgs ){
vec.push_back(cv::imread(img, COLOR_BGR)); //or gray. doesn't really matter
}
现在,我想创建一个 4D 矩阵。例如,在 pythonnp.array(vec)
中会给我这个(假设vec
是一个列表)。我想在 OpenCV c++ 中也一样,但我找不到解决方案。
我不想创建一个 4D 矩阵Mat m(dims, size, type);
,然后遍历所有像素并复制该值,因为它非常低效。我想要一种技术,它会被认为vec<Mat>
是4D Mat
超快的。请注意,我可以拥有100
全分辨率图像。
我在 Mac 上使用 Opencv4.2 和 c++。
提前致谢