46 options.
Parse(argc, argv);
56 }
else if (
type ==
"images") {
61 }
else if (
type ==
"features") {
67 }
else if (
type ==
"matches") {
72 std::cout <<
"WARNING: Invalid cleanup type: " <<
type <<
84 options.
Parse(argc, argv);
92 std::string database_path1;
93 std::string database_path2;
94 std::string merged_database_path;
100 options.
Parse(argc, argv);
103 std::cout <<
"WARNING: Merged database file must not exist." <<
std::endl;
109 Database merged_database(merged_database_path);
void ClearDescriptors() const
static void Merge(const Database &database1, const Database &database2, Database *merged_database)
void ClearAllTables() const
void ClearKeypoints() const
void ClearTwoViewGeometries() const
void ClearMatches() const
void AddRequiredOption(const std::string &name, T *option, const std::string &help_text="")
std::shared_ptr< std::string > database_path
void AddDatabaseOptions()
void Parse(const int argc, char **argv)
QTextStream & endl(QTextStream &stream)
void PrintHeading2(const std::string &heading)
void StringToLower(std::string *str)
int RunDatabaseCleaner(int argc, char **argv)
bool ExistsFile(const std::string &path)
int RunDatabaseMerger(int argc, char **argv)
void PrintHeading1(const std::string &heading)
int RunDatabaseCreator(int argc, char **argv)