| 276 | } |
| 277 | |
| 278 | int RunSequentialMatcher(int argc, char** argv) { |
| 279 | OptionManager options; |
| 280 | options.AddDatabaseOptions(); |
| 281 | options.AddSequentialPairingOptions(); |
| 282 | if (!options.Parse(argc, argv)) { |
| 283 | return EXIT_FAILURE; |
| 284 | } |
| 285 | |
| 286 | std::unique_ptr<QApplication> app; |
| 287 | if (options.feature_matching->RequiresOpenGL()) { |
| 288 | app = std::make_unique<QApplication>(argc, argv); |
| 289 | } |
| 290 | |
| 291 | auto matcher = CreateSequentialFeatureMatcher(*options.sequential_pairing, |
| 292 | *options.feature_matching, |
| 293 | *options.two_view_geometry, |
| 294 | *options.database_path); |
| 295 | |
| 296 | if (app != nullptr) { |
| 297 | RunThreadWithOpenGLContext(matcher.get()); |
| 298 | } else { |
| 299 | matcher->Start(); |
| 300 | matcher->Wait(); |
| 301 | } |
| 302 | |
| 303 | return EXIT_SUCCESS; |
| 304 | } |
| 305 | |
| 306 | int RunSpatialMatcher(int argc, char** argv) { |
| 307 | OptionManager options; |
nothing calls this directly
no test coverage detected