4
我正在使用圖像識別應用程序並試圖使用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++接口做這件事的地方。這些方法真的有用嗎?如果是這樣,你們有沒有想法如何使它起作用?
謝謝。