22
33#include " glomap/io/colmap_converter.h"
44
5- #include < colmap/controllers/incremental_mapper .h>
5+ #include < colmap/controllers/incremental_pipeline .h>
66#include < colmap/estimators/bundle_adjustment.h>
77#include < colmap/scene/database_cache.h>
88
9+ #include < set>
10+
911namespace glomap {
1012
1113bool RetriangulateTracks (const TriangulatorOptions& options,
@@ -40,7 +42,7 @@ bool RetriangulateTracks(const TriangulatorOptions& options,
4042 std::unordered_map<track_t , Track>(),
4143 *reconstruction_ptr);
4244
43- colmap::IncrementalMapperOptions options_colmap;
45+ colmap::IncrementalPipelineOptions options_colmap;
4446 options_colmap.triangulation .complete_max_reproj_error =
4547 options.tri_complete_max_reproj_error ;
4648 options_colmap.triangulation .merge_max_reproj_error =
@@ -57,13 +59,13 @@ bool RetriangulateTracks(const TriangulatorOptions& options,
5759 const auto tri_options = options_colmap.Triangulation ();
5860 const auto mapper_options = options_colmap.Mapper ();
5961
60- const std::vector <image_t >& reg_image_ids = reconstruction_ptr->RegImageIds ();
62+ const std::set <image_t >& reg_image_ids = reconstruction_ptr->RegImageIds ();
6163
62- for (size_t i = 0 ; i < reg_image_ids.size (); ++i) {
63- std::cout << " \r Triangulating image " << i + 1 << " / "
64+ size_t image_idx = 0 ;
65+ for (const image_t image_id : reg_image_ids) {
66+ std::cout << " \r Triangulating image " << image_idx++ + 1 << " / "
6467 << reg_image_ids.size () << std::flush;
6568
66- const image_t image_id = reg_image_ids[i];
6769 const auto & image = reconstruction_ptr->Image (image_id);
6870
6971 int num_tris = mapper.TriangulateImage (tri_options, image_id);
@@ -96,10 +98,10 @@ bool RetriangulateTracks(const TriangulatorOptions& options,
9698 const size_t num_observations =
9799 reconstruction_ptr->ComputeNumObservations ();
98100
99- // PrintHeading1("Bundle adjustment") ;
100- colmap::BundleAdjuster bundle_adjuster (ba_options, ba_config);
101- // THROW_CHECK(bundle_adjuster.Solve(reconstruction.get()) );
102- if (! bundle_adjuster. Solve (reconstruction_ptr. get ()) ) {
101+ std::unique_ptr<colmap::BundleAdjuster> bundle_adjuster ;
102+ bundle_adjuster =
103+ CreateDefaultBundleAdjuster (ba_options, ba_config, *reconstruction_ptr );
104+ if (bundle_adjuster-> Solve (). termination_type == ceres::FAILURE ) {
103105 return false ;
104106 }
105107
@@ -128,4 +130,4 @@ bool RetriangulateTracks(const TriangulatorOptions& options,
128130 return true ;
129131}
130132
131- } // namespace glomap
133+ } // namespace glomap
0 commit comments