ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
feature.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #include "exe/feature.h"
9 
10 #include "pipelines/feature.h"
11 #include "pipelines/option_utils.h"
12 
13 namespace cloudViewer {
14 
16  const std::string& database_path,
17  const std::string& image_path,
18  const std::string& image_list_path,
19  int camera_mode,
20  const colmap::ImageReaderOptions& image_reader_options,
21  const colmap::SiftExtractionOptions& sift_extraction_options) {
22  OptionsParser parser;
23  parser.registerOption("database_path", &database_path);
24  parser.registerOption("image_path", &image_path);
25  parser.registerOption("image_list_path", &image_list_path);
26  // supported camera model { AUTO=0, SINGLE=1, PER_FOLDER=2, PER_IMAGE=3 }
27  parser.registerOption("camera_mode", &camera_mode);
28  parser.addExtractionOptions(image_reader_options, sift_extraction_options);
29  if (!parser.parseOptions()) return EXIT_FAILURE;
30 
31  return colmap::RunFeatureExtractor(parser.getArgc(), parser.getArgv());
32 }
33 
35  const std::string& database_path,
36  const std::string& image_path,
37  const std::string& import_path,
38  const std::string& image_list_path,
39  int camera_mode,
40  const colmap::ImageReaderOptions& image_reader_options,
41  const colmap::SiftExtractionOptions& sift_extraction_options) {
42  OptionsParser parser;
43  parser.registerOption("database_path", &database_path);
44  parser.registerOption("image_path", &image_path);
45  parser.registerOption("import_path", &import_path);
46  parser.registerOption("image_list_path", &image_list_path);
47  parser.registerOption("camera_mode", &camera_mode);
48  parser.addExtractionOptions(image_reader_options, sift_extraction_options);
49  if (!parser.parseOptions()) return EXIT_FAILURE;
50 
51  return colmap::RunFeatureImporter(parser.getArgc(), parser.getArgv());
52 }
53 
54 int ImportMatches(const std::string& database_path,
55  const std::string& match_list_path,
56  const std::string& match_type,
57  const colmap::SiftMatchingOptions& sift_matching_options) {
58  OptionsParser parser;
59  parser.registerOption("database_path", &database_path);
60  parser.registerOption("match_list_path", &match_list_path);
61  // supported match_type {'pairs', 'raw', 'inliers'}
62  parser.registerOption("match_type", &match_type);
63  parser.addMatchingOptions(sift_matching_options);
64  if (!parser.parseOptions()) return EXIT_FAILURE;
65 
66  return colmap::RunMatchesImporter(parser.getArgc(), parser.getArgv());
67 }
68 
70  const std::string& database_path,
71  const colmap::SiftMatchingOptions& sift_matching_options,
72  const colmap::ExhaustiveMatchingOptions& exhaustive_matching_options) {
73  OptionsParser parser;
74  parser.registerOption("database_path", &database_path);
75  parser.addExhaustiveMatchingOptions(sift_matching_options,
76  exhaustive_matching_options);
77  if (!parser.parseOptions()) return EXIT_FAILURE;
78 
79  return colmap::RunExhaustiveMatcher(parser.getArgc(), parser.getArgv());
80 }
81 
83  const std::string& database_path,
84  const colmap::SiftMatchingOptions& sift_matching_options,
85  const colmap::SequentialMatchingOptions& sequential_matching_options) {
86  OptionsParser parser;
87  parser.registerOption("database_path", &database_path);
88  parser.addSequentialMatchingOptions(sift_matching_options,
89  sequential_matching_options);
90  if (!parser.parseOptions()) return EXIT_FAILURE;
91 
92  return colmap::RunSequentialMatcher(parser.getArgc(), parser.getArgv());
93 }
94 
96  const std::string& database_path,
97  const colmap::SiftMatchingOptions& sift_matching_options,
98  const colmap::SpatialMatchingOptions& spatial_matching_options) {
99  OptionsParser parser;
100  parser.registerOption("database_path", &database_path);
101  parser.addSpatialMatchingOptions(sift_matching_options,
102  spatial_matching_options);
103  if (!parser.parseOptions()) return EXIT_FAILURE;
104 
105  return colmap::RunSpatialMatcher(parser.getArgc(), parser.getArgv());
106 }
107 
109  const std::string& database_path,
110  const colmap::SiftMatchingOptions& sift_matching_options,
111  const colmap::TransitiveMatchingOptions& transitive_matching_options) {
112  OptionsParser parser;
113  parser.registerOption("database_path", &database_path);
114  parser.addTransitiveMatchingOptions(sift_matching_options,
115  transitive_matching_options);
116  if (!parser.parseOptions()) return EXIT_FAILURE;
117 
118  return colmap::RunTransitiveMatcher(parser.getArgc(), parser.getArgv());
119 }
120 
122  const std::string& database_path,
123  const colmap::SiftMatchingOptions& sift_matching_options,
124  const colmap::VocabTreeMatchingOptions& vocab_tree_matching_options) {
125  OptionsParser parser;
126  parser.registerOption("database_path", &database_path);
127  parser.addVocabTreeMatchingOptions(sift_matching_options,
128  vocab_tree_matching_options);
129  if (!parser.parseOptions()) return EXIT_FAILURE;
130 
131  return colmap::RunVocabTreeMatcher(parser.getArgc(), parser.getArgv());
132 }
133 
134 } // namespace cloudViewer
void addExtractionOptions(const colmap::ImageReaderOptions &image_reader_options, const colmap::SiftExtractionOptions &sift_extraction_options)
void addSequentialMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SequentialMatchingOptions &sequential_matching_options)
void addExhaustiveMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::ExhaustiveMatchingOptions &exhaustive_matching_options)
void registerOption(const std::string &name, const T *option)
Definition: option_utils.h:43
void addVocabTreeMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::VocabTreeMatchingOptions &vocab_tree_matching_options)
void addSpatialMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SpatialMatchingOptions &spatial_matching_options)
void addTransitiveMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options, const colmap::TransitiveMatchingOptions &transitive_matching_options)
void addMatchingOptions(const colmap::SiftMatchingOptions &sift_matching_options)
Generic file read and write utility for python interface.
int ImportFeature(const std::string &database_path, const std::string &image_path, const std::string &import_path, const std::string &image_list_path, int camera_mode, const colmap::ImageReaderOptions &image_reader_options, const colmap::SiftExtractionOptions &sift_extraction_options)
Definition: feature.cpp:34
int ImportMatches(const std::string &database_path, const std::string &match_list_path, const std::string &match_type, const colmap::SiftMatchingOptions &sift_matching_options)
Definition: feature.cpp:54
int ExtractFeature(const std::string &database_path, const std::string &image_path, const std::string &image_list_path, int camera_mode, const colmap::ImageReaderOptions &image_reader_options, const colmap::SiftExtractionOptions &sift_extraction_options)
Definition: feature.cpp:15
int ExhaustiveMatch(const std::string &database_path, const colmap::SiftMatchingOptions &sift_matching_options, const colmap::ExhaustiveMatchingOptions &exhaustive_matching_options)
Definition: feature.cpp:69
int TransitiveMatch(const std::string &database_path, const colmap::SiftMatchingOptions &sift_matching_options, const colmap::TransitiveMatchingOptions &transitive_matching_options)
Definition: feature.cpp:108
int SequentialMatch(const std::string &database_path, const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SequentialMatchingOptions &sequential_matching_options)
Definition: feature.cpp:82
int SpatialMatch(const std::string &database_path, const colmap::SiftMatchingOptions &sift_matching_options, const colmap::SpatialMatchingOptions &spatial_matching_options)
Definition: feature.cpp:95
int VocabTreeMatch(const std::string &database_path, const colmap::SiftMatchingOptions &sift_matching_options, const colmap::VocabTreeMatchingOptions &vocab_tree_matching_options)
Definition: feature.cpp:121
int RunMatchesImporter(int argc, char **argv)
Definition: feature.cc:238
int RunSequentialMatcher(int argc, char **argv)
Definition: feature.cc:315
int RunFeatureExtractor(int argc, char **argv)
Definition: feature.cc:137
int RunTransitiveMatcher(int argc, char **argv)
Definition: feature.cc:373
int RunSpatialMatcher(int argc, char **argv)
Definition: feature.cc:344
int RunFeatureImporter(int argc, char **argv)
Definition: feature.cc:196
int RunVocabTreeMatcher(int argc, char **argv)
Definition: feature.cc:402
int RunExhaustiveMatcher(int argc, char **argv)
Definition: feature.cc:286