将图像加载到Mat-vvector<向量<垫子>>

Load images into a vector of vector of Mat - vector<vector<Mat>>

本文关键字:lt gt 垫子 向量 加载 Mat-vvector 图像      更新时间:2023-10-16

我正在使用opencv C++库进行一个图像处理项目。我已经能够使用glob()函数读取图像名称并将图像从文件夹加载到我的代码中。我遇到的问题是如何以二维阵列方式(行列方式)组织图像我想为100个人的每个人加载10张图像,并将它们存储在MAT阵列/向量中,这样我的主题就用行表示,每个主题的图像就是列。

此代码正在引发未处理的异常错误。

#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
using namespace cv;
int main()
{
String folder = "E:\Face Databases\FG-NET DATASET\images\*.JPG";
vector<String> filenames;
int start = folder.find("*");//get the start of the real image label
//cout << "Position = " << start << endl;
glob(folder, filenames, false);
String label[1001];
ofstream labels;
labels.open("labels.csv");
vector<vector<Mat>> myImage;
for (size_t i = 0; i < filenames.size(); ++i)
{
    vector<Mat> myImage = imread(filenames[i]);
    label[i] = filenames[i].substr(start, 6);
    labels << label[i] << "n";//write labels to a csv file
}
waitKey(0);
return 0;
}

语句

vector<Mat> myImage = imread(filenames[i]);

应该是

cv::Mat myImage = imread(filenames[i]);

imread()返回Mat对象。

同时验证filenames[i]是有效的图像文件路径。