0
나는 이미지를 파일 폴더에서 벡터로 읽으려고한다. 그러나 내 이미지 매트가 벡터로 push_back하지 못하는 것 같습니다.Opencv push_back image 매트를 벡터에 넣기 <Mat>
cout << "img vec:" << imgs[0].rows << " " << imgs[0].cols << endl;
의 결과는 img vec:0 0
입니다.
나는 imgs.push_back(img.clone());
과 imgs.push_back(img);
을 모두 시도했습니다. 정말 미안 해요
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <dirent.h>
#include <opencv/cv.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
void readImageFiles(string dirName, vector<cv::Mat> &imgs);
int _tmain(int argc, _TCHAR* argv[]){
vector<cv::Mat> imgs;
readImageFiles("training/", imgs);
cout << imgs.size() << endl;
cout << imgs[0] << endl;
/*
for(int i = 0; i < imgs.size(); i++){
imshow("img", imgs[i]);
waitKey();
}
*/
system("pause");
return 0;
}
void readImageFiles(string dirName, vector<cv::Mat> &imgs){
DIR *dir;
dir = opendir(dirName.c_str());
struct dirent *ent;
if (dir != NULL) {
while ((ent = readdir (dir)) != NULL) {
string imgPath(dirName + ent->d_name);
Mat img = imread(imgPath);
//cvtColor(img,img,CV_BGR2GRAY);
imgs.push_back(img.clone());
cout << "img:" << img.rows << " " << img.cols << endl;
cout << "img vec:" << imgs[0].rows << " " << imgs[0].cols << endl;
}
}else{
cout << "NULL" << endl;
}
}
당신은'imgs.emplace_back (imread (imgPath));'시도 했습니까? – 1201ProgramAlarm
아직 시도했지만 아무 것도 없습니다. 귀하의 제안에 감사드립니다! – user4029119
과'cout << "의 출력 img :"<< img.rows << ""<< img.cols << endl; "은"img : 0 0 "'이 아닙니까? – Micka