diff --git a/glomap/estimators/global_rotation_averaging.cc b/glomap/estimators/global_rotation_averaging.cc index 8246b272..0586f4bc 100644 --- a/glomap/estimators/global_rotation_averaging.cc +++ b/glomap/estimators/global_rotation_averaging.cc @@ -759,7 +759,7 @@ double RotationEstimator::ComputeAverageStepSize( const std::unordered_map& frames) { double total_update = 0; for (const auto& [frame_id, frame] : frames) { - if (frames.at(frame_id).is_registered) continue; + if (!frames.at(frame_id).is_registered) continue; if (options_.use_gravity && frame.HasGravity()) { total_update += std::abs(tangent_space_step_[frame_id_to_idx_[frame_id]]); diff --git a/glomap/exe/rotation_averager.cc b/glomap/exe/rotation_averager.cc index 86403ded..af8a7a3f 100644 --- a/glomap/exe/rotation_averager.cc +++ b/glomap/exe/rotation_averager.cc @@ -74,6 +74,7 @@ int RunRotationAverager(int argc, char** argv) { for (auto& [image_id, image] : images) { image.camera_id = image.image_id; cameras[image.camera_id] = Camera(); + cameras[image.camera_id].camera_id = image.camera_id; } CreateOneRigPerCamera(cameras, rigs); diff --git a/glomap/io/colmap_converter.cc b/glomap/io/colmap_converter.cc index 13dc8308..4c7fd030 100644 --- a/glomap/io/colmap_converter.cc +++ b/glomap/io/colmap_converter.cc @@ -429,6 +429,7 @@ void CreateOneRigPerCamera(const std::unordered_map& cameras, Rig rig; rig.SetRigId(camera_id); rig.AddRefSensor(camera.SensorId()); + rigs[rig.RigId()] = rig; } } diff --git a/glomap/io/pose_io.cc b/glomap/io/pose_io.cc index d2349f3c..b5c2fad9 100644 --- a/glomap/io/pose_io.cc +++ b/glomap/io/pose_io.cc @@ -10,10 +10,12 @@ void ReadRelPose(const std::string& file_path, ViewGraph& view_graph) { std::unordered_map name_idx; image_t max_image_id = 0; + camera_t max_camera_id = 0; for (const auto& [image_id, image] : images) { name_idx[image.file_name] = image_id; max_image_id = std::max(max_image_id, image_id); + max_camera_id = std::max(max_camera_id, image.camera_id); } // Mark every edge in te view graph as invalid @@ -42,14 +44,16 @@ void ReadRelPose(const std::string& file_path, if (name_idx.find(file1) == name_idx.end()) { max_image_id += 1; - images.insert( - std::make_pair(max_image_id, Image(max_image_id, -1, file1))); + max_camera_id += 1; + images.insert(std::make_pair(max_image_id, + Image(max_image_id, max_camera_id, file1))); name_idx[file1] = max_image_id; } if (name_idx.find(file2) == name_idx.end()) { max_image_id += 1; - images.insert( - std::make_pair(max_image_id, Image(max_image_id, -1, file2))); + max_camera_id += 1; + images.insert(std::make_pair(max_image_id, + Image(max_image_id, max_camera_id, file2))); name_idx[file2] = max_image_id; } diff --git a/glomap/scene/view_graph.cc b/glomap/scene/view_graph.cc index 5e8e855e..760593cc 100644 --- a/glomap/scene/view_graph.cc +++ b/glomap/scene/view_graph.cc @@ -89,6 +89,7 @@ int ViewGraph::KeepLargestConnectedComponents( } } + max_img = 0; for (auto& [image_id, image] : images) { if (image.IsRegistered()) max_img++; }