| 50 | } |
| 51 | |
| 52 | DatabaseCache::Options CreateDatabaseCacheOptions( |
| 53 | const IncrementalPipelineOptions& options, |
| 54 | const ReconstructionManager& reconstruction_manager) { |
| 55 | DatabaseCache::Options database_cache_options; |
| 56 | database_cache_options.min_num_matches = |
| 57 | static_cast<size_t>(options.min_num_matches); |
| 58 | database_cache_options.ignore_watermarks = options.ignore_watermarks; |
| 59 | database_cache_options.image_names = {options.image_names.begin(), |
| 60 | options.image_names.end()}; |
| 61 | // Make sure images of the given reconstruction are also included when |
| 62 | // manually specifying images for the reconstruction procedure. |
| 63 | if (reconstruction_manager.Size() == 1 && !options.image_names.empty()) { |
| 64 | const auto& reconstruction = reconstruction_manager.Get(0); |
| 65 | for (const image_t image_id : reconstruction->RegImageIds()) { |
| 66 | const auto& image = reconstruction->Image(image_id); |
| 67 | database_cache_options.image_names.insert(image.Name()); |
| 68 | } |
| 69 | } |
| 70 | database_cache_options.load_all_images = options.load_all_images; |
| 71 | database_cache_options.convert_pose_priors_to_enu = |
| 72 | options.use_prior_position; |
| 73 | return database_cache_options; |
| 74 | } |
| 75 | |
| 76 | void IterativeGlobalRefinement(const IncrementalPipelineOptions& options, |
| 77 | const IncrementalMapper::Options& mapper_options, |
no test coverage detected