【发布时间】:2020-07-01 04:45:19
【问题描述】:
假设我将相同大小、深度和通道的图像/矩阵收集到 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 矩阵。例如,在 python 中np.array(vec) 会给我这个(假设vec 是一个列表)。我想在 OpenCV c++ 中也一样,但我找不到解决方案。
我不想用Mat m(dims, size, type); 创建一个 4D 矩阵,然后遍历所有像素并复制该值,因为它的效率非常低。我想要一种将vec<Mat> 视为4D Mat 的技术,这样它就会非常快。请注意,我可以拥有100 全分辨率图像。
我在 Mac 上使用 Opencv4.2 和 c++。
提前致谢
【问题讨论】:
标签: c++ opencv vector mat opencv4