2016-04-09 10 views
-3

私はOpenCVのC++ライブラリを用いた画像処理プロジェクトに取り組んでいます。​​3210機能を使用して、画像名を読み込んでフォルダから画像をコードに読み込むことができました。私が持っている問題は、2次元配列の方法でイメージを整理する方法です(行と列のやり方)。 個人ごとに10個の画像を読み込み、MATアレイ/ベクターに保存して、被写体が行で表され、各画像が列であるようにします。ロード画像 - ベクトル<vector<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; 
} 
+5

あなたが欲しいものを知っているように見えるので...親切にあなたがしようとした*何*を示し、そして物事がうまくいかないように見えたところ仮定する。 – WhozCraig

+0

ようこそstackoverflowへ! [ガイドを依頼する方法]を見て覚えておいてください(https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjv3Kiep4HMAhWEMyYKHSXJCRwQFggcMAA&url=http%3A%2F %2Fstackoverflow.com%2Fhelp%2Fhowツー尋ねる質問をする前に、&USG = AFQjCNEDXp3Jt0aiEKFPFI03PFSjhs3gAw&SIG2 = aQoL-Q1QCDgWPtjQ2CEVeA&BVM = bv.119028448、d.eWE)。あなたはあなたの評判を失います。 –

+0

ありがとうございます。 opencv初心者用コードを追加しました。 – Angulu

答えて

0

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

文は

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

imread()戻りMatオブジェクトでなければなりません。

またfilenames[i]を検証する有効なイメージファイルのパスです。

関連する問題