@@ -137,12 +137,15 @@ void UpdateImageReaderOptionsFromCameraMode(ImageReaderOptions& options,
137137int RunFeatureExtractor (int argc, char ** argv) {
138138 std::string image_list_path;
139139 int camera_mode = -1 ;
140+ std::string descriptor_normalization = " l1_root" ;
140141
141142 OptionManager options;
142143 options.AddDatabaseOptions ();
143144 options.AddImageOptions ();
144145 options.AddDefaultOption (" camera_mode" , &camera_mode);
145146 options.AddDefaultOption (" image_list_path" , &image_list_path);
147+ options.AddDefaultOption (" descriptor_normalization" , &descriptor_normalization,
148+ " {'l1_root', 'l2'}" );
146149 options.AddExtractionOptions ();
147150 options.Parse (argc, argv);
148151
@@ -155,6 +158,19 @@ int RunFeatureExtractor(int argc, char** argv) {
155158 (CameraMode)camera_mode);
156159 }
157160
161+ StringToLower (&descriptor_normalization);
162+ if (descriptor_normalization == " l1_root" ) {
163+ options.sift_extraction ->normalization =
164+ SiftExtractionOptions::Normalization::L1_ROOT;
165+ } else if (descriptor_normalization == " l2" ) {
166+ options.sift_extraction ->normalization =
167+ SiftExtractionOptions::Normalization::L2;
168+ } else {
169+ std::cerr << " ERROR: Invalid `descriptor_normalization`"
170+ << std::endl;
171+ return EXIT_FAILURE;
172+ }
173+
158174 if (!image_list_path.empty ()) {
159175 reader_options.image_list = ReadTextFileLines (image_list_path);
160176 if (reader_options.image_list .empty ()) {
0 commit comments