私は画像認識アプリケーションで作業しており、Ferns記述子マッチャーを使用してメソッドを実装しようとしています。Ferns記述子で訓練した後にopencv記述子マッチャーを保存する
私は羊歯構造を訓練し、以下のコード使用してそれらを保存する:
int main(int argc, char** argv) {
vector<string> trainFilenames;
readTrainFilenames(modelImagesList, imagesDir, trainFilenames);
Ptr<GenericDescriptorMatcher> descriptorMatcher = GenericDescriptorMatcher::create("FERN", params_filename);
SurfFeatureDetector detector(500);
SurfDescriptorExtractor extractor;
vector<vector<KeyPoint> > allKeypoints;
vector<Mat> allTrainImages;
//TRAIN AND SAVE
for(unsigned int i = 0; i < trainFilenames.size(); i++){
Mat sceneImage;
std::vector<KeyPoint> sceneKeypoints;
sceneImage = imread(trainFilenames.at(i), CV_LOAD_IMAGE_GRAYSCALE);
detector.detect(sceneImage, sceneKeypoints);
allKeypoints.push_back(sceneKeypoints);
allTrainImages.push_back(sceneImage);
}
std::string sceneImageData = "sceneImagedatamodel.xml";
FileStorage fs(sceneImageData, FileStorage::WRITE);
descriptorMatcher->add(allTrainImages, allKeypoints);
descriptorMatcher->train();
descriptorMatcher->write(fs);
fs.release();
}
をしかし、私は、出力ファイルで入手唯一のものはこれです:
<?xml version="1.0"?>
<opencv_storage>
<nclasses>0</nclasses>
<patchSize>31</patchSize>
<signatureSize>2147483647</signatureSize>
<nstructs>50</nstructs>
<structSize>9</structSize>
<nviews>1000</nviews>
<compressionMethod>0</compressionMethod>
</opencv_storage>
構造体全体をxmlファイルに保存するのではないでしょうか?
新しいC++インターフェイスでこれをやっている人がいないようです。これらの方法は本当に機能していますか?もしそうなら、あなたはそれをどのように働かせるか考えていますか?
ありがとうございます。