[英]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.