From 8e526dc58a4773e6a1e9980f3d19f02ffdd63045 Mon Sep 17 00:00:00 2001 From: Ilya Lysenkov Date: Wed, 2 Jun 2010 05:56:50 +0000 Subject: [PATCH] Added One Way Descriptor to detectors and descriptros evaluation --- tests/cv/src/adetectordescriptor_evaluation.cpp | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/tests/cv/src/adetectordescriptor_evaluation.cpp b/tests/cv/src/adetectordescriptor_evaluation.cpp index fc9cf94..eb419da 100644 --- a/tests/cv/src/adetectordescriptor_evaluation.cpp +++ b/tests/cv/src/adetectordescriptor_evaluation.cpp @@ -1462,6 +1462,9 @@ const string KEYPOINTS_FILENAME = "keypointsFilename"; const string PROJECT_KEYPOINTS_FROM_1IMAGE = "projectKeypointsFrom1Image"; const string MATCH_FILTER = "matchFilter"; +const string ONE_WAY_TRAIN_DIR = "detectors_descriptors_evaluation/one_way_train_images/"; +const string ONE_WAY_IMAGES_LIST = "one_way_train_images.txt"; + class DescriptorQualityTest : public BaseQualityTest { public: @@ -1787,3 +1790,70 @@ void SurfDescriptorQualityTest::setDefaultDatasetRunParams( int datasetIdx ) } SurfDescriptorQualityTest surfDescriptorQuality; + +//--------------------------------- One Way descriptor test -------------------------------------------- +class OneWayDescriptorQualityTest : public DescriptorQualityTest +{ +public: + OneWayDescriptorQualityTest() : + DescriptorQualityTest("one_way", "quality-descriptor-one-way") + { + runParams.resize(DATASETS_COUNT); + } + +protected: + virtual GenericDescriptorMatch* createDescriptorMatch(int datasetIdx); + virtual void readDatasetRunParams(FileNode& fn, int datasetIdx); + virtual void writeDatasetRunParams(FileStorage& fs, int datasetIdx) const; + virtual void setDefaultDatasetRunParams(int datasetIdx); + + typedef OneWayDescriptorMatch::Params RunParams; + vector runParams; +}; + +GenericDescriptorMatch* OneWayDescriptorQualityTest::createDescriptorMatch(int datasetIdx) +{ + GenericDescriptorMatch* genericDescriptorMatch = new OneWayDescriptorMatch(runParams[datasetIdx]); + return genericDescriptorMatch; +} + +void OneWayDescriptorQualityTest::readDatasetRunParams(FileNode& fn, int datasetIdx) +{ + DescriptorQualityTest::readDatasetRunParams(fn, datasetIdx); + runParams[datasetIdx].poseCount = fn["poseCount"]; + int patchWidth = fn["patchWidth"]; + int patchHeight = fn["patchHeight"]; + runParams[datasetIdx].patchSize = Size(patchWidth, patchHeight); + runParams[datasetIdx].pcaFilename = string(ts->get_data_path()) + (string)fn["pcaFilename"]; + runParams[datasetIdx].trainPath = string(ts->get_data_path()) + (string)fn["trainPath"]; + runParams[datasetIdx].trainImagesList = (string)fn["trainImagesList"]; + runParams[datasetIdx].minScale = fn["minScale"]; + runParams[datasetIdx].maxScale = fn["maxScale"]; + runParams[datasetIdx].stepScale = fn["stepScale"]; +} + +void OneWayDescriptorQualityTest::writeDatasetRunParams(FileStorage& fs, int datasetIdx) const +{ + DescriptorQualityTest::writeDatasetRunParams(fs, datasetIdx); + fs << "poseCount" << runParams[datasetIdx].poseCount; + fs << "patchWidth" << runParams[datasetIdx].patchSize.width; + fs << "patchHeight" << runParams[datasetIdx].patchSize.height; + fs << "pcaFilename" << runParams[datasetIdx].pcaFilename; + fs << "trainPath" << runParams[datasetIdx].trainPath; + fs << "trainImagesList" << runParams[datasetIdx].trainImagesList; + fs << "minScale" << runParams[datasetIdx].minScale; + fs << "maxScale" << runParams[datasetIdx].maxScale; + fs << "stepScale" << runParams[datasetIdx].stepScale; +} + +void OneWayDescriptorQualityTest::setDefaultDatasetRunParams(int datasetIdx) +{ + DescriptorQualityTest::setDefaultDatasetRunParams(datasetIdx); + runParams[datasetIdx] = OneWayDescriptorMatch::Params(); + runParams[datasetIdx].pcaFilename = string(ts->get_data_path()) + ONE_WAY_TRAIN_DIR + OneWayDescriptorBase::GetPCAFilename(); + runParams[datasetIdx].trainPath = string(ts->get_data_path()) + ONE_WAY_TRAIN_DIR; + runParams[datasetIdx].trainImagesList = ONE_WAY_IMAGES_LIST; +} + +OneWayDescriptorQualityTest oneWayDescriptorQuality; + -- 2.7.4