繁体   English   中英

如何在C ++ / OpenCv中将多个RGB图像存储在一个数组中

[英]How to store multiple RGB Images in one array in C++/OpenCv

支持我有10张RGB图像。 如何将所有图像存储在单个阵列中。

就像我们有一个RGB图像一样,我们可以制作

  Mat img = imread("test.jpg",CV_LOAD_IMAGE_UNCHANGED);
  Mat arr = Mat zeros(row, col, CV_32FC1);
  arr  = img.clone();

通过这种方式,我们可以读取图像。 我想读取10张图像,并希望将其存储在相同的aaray“ arr ”中。 有可能做到这一点。 如果是这样,怎么办?

如果您要像Dobi所示将10张图像存储到单个阵列中,则可以使用std::vector<cv::Mat>

喜欢

std::vector<cv::Mat> Vec();

然后

Vec.push_back(img);

cv :: Mat允许您像std :: vector一样push_back,因此您可以简单地执行以下操作:

   //read a few images
   cv::Mat img1 = imread("test1.jpg",CV_LOAD_IMAGE_UNCHANGED);
   cv::Mat img2= imread("test2.jpg",CV_LOAD_IMAGE_UNCHANGED);

   //make sure same size
   CV_Assert(img2.size() == img1.size()); 

   //combine into a new image
   cv::Mat im1im2; 
   im1im2.push_back(img1);
   im1im2.push_back(img2);

当然,您也可以循环执行。

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM