From 0fcc9ff6dd3f0bc061394de5184d838f61a8b2bb Mon Sep 17 00:00:00 2001 From: Mihai Dusmanu Date: Mon, 15 Nov 2021 10:10:36 +0100 Subject: [PATCH] Added descriptor normalization argument to feature_extractor. --- src/exe/feature.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/exe/feature.cc b/src/exe/feature.cc index 1ba53f9d5c..f6e4be1eda 100644 --- a/src/exe/feature.cc +++ b/src/exe/feature.cc @@ -137,12 +137,15 @@ void UpdateImageReaderOptionsFromCameraMode(ImageReaderOptions& options, int RunFeatureExtractor(int argc, char** argv) { std::string image_list_path; int camera_mode = -1; + std::string descriptor_normalization = "l1_root"; OptionManager options; options.AddDatabaseOptions(); options.AddImageOptions(); options.AddDefaultOption("camera_mode", &camera_mode); options.AddDefaultOption("image_list_path", &image_list_path); + options.AddDefaultOption("descriptor_normalization", &descriptor_normalization, + "{'l1_root', 'l2'}"); options.AddExtractionOptions(); options.Parse(argc, argv); @@ -155,6 +158,19 @@ int RunFeatureExtractor(int argc, char** argv) { (CameraMode)camera_mode); } + StringToLower(&descriptor_normalization); + if (descriptor_normalization == "l1_root") { + options.sift_extraction->normalization = + SiftExtractionOptions::Normalization::L1_ROOT; + } else if (descriptor_normalization == "l2") { + options.sift_extraction->normalization = + SiftExtractionOptions::Normalization::L2; + } else { + std::cerr << "ERROR: Invalid `descriptor_normalization`" + << std::endl; + return EXIT_FAILURE; + } + if (!image_list_path.empty()) { reader_options.image_list = ReadTextFileLines(image_list_path); if (reader_options.image_list.empty()) {