2012-03-12 2 views
6

私はOpenCVを使用してオブジェクト分類子を作成しています。アプリが起動するたびに分類子を訓練することを避けるために、何らかの形でファイルに保存したいと考えています。利用可能な最も便利な方法は、OpenCVs FileStorage classを使用しているようです。iOSでのOpenCV FileStorageの使用

私はこれを打ちましたが、うまくいかなかったようです。エラーが表示されませんでしたが、保存されたファイルはどこにも表示されませんでした。私は、iOSがファイルを保存するだけではないと思います。別の方法として、文字列としてYAMLを取得し、それをNSStringに変換してプロパティリストに保存することがありますが、これをどうやって行うことができるか、それが可能であるかはわかりません。

ご協力いただければ幸いです。

答えて

13

iOSで動作するFileStorageクラスを取得できました。問題は、ファイルがiOSの指定されたDocuments Directoryで作成されていることを確認する必要があることでした。いくつかのサンプルコードを示します:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 
NSString *vocabPath = [docs stringByAppendingPathComponent:@"vocabulary.xml"]; 
FileStorage fs([vocabPath UTF8String], FileStorage::WRITE); 
// vocab is a CvMat object representing the vocabulary in my bag of features model 
fs << "vocabulary" << vocab; 
fs.release(); 

// READING 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 
NSString *vocabPath = [docs stringByAppendingPathComponent:@"vocabulary.xml"]; 
FileStorage fs([vocabPath UTF8String], FileStorage::READ); 
// vocab is a CvMat object representing the vocabulary in my bag of features model 
fs["vocabulary"] >> vocab; 
fs.release(); 
関連する問題