Skip to content

Commit 969035a

Browse files
committed
fix the bug for the reconstruction output when there are more than 1 cluster
1 parent 9fa8c45 commit 969035a

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

glomap/io/colmap_converter.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ void ConvertGlomapToColmap(const std::unordered_map<rig_t, Rig>& rigs,
9595
colmap_point.track.AddElement(colmap_track_el);
9696
}
9797

98-
if (track.observations.size() < min_supports) continue;
98+
if (colmap_point.track.Length() < min_supports) continue;
9999

100100
colmap_point.track.Compress();
101101
reconstruction.AddPoint3D(track_id, std::move(colmap_point));
@@ -110,7 +110,7 @@ void ConvertGlomapToColmap(const std::unordered_map<rig_t, Rig>& rigs,
110110
if (keep_points) {
111111
std::vector<track_t>& track_ids = image_to_point3D[image_id];
112112
for (size_t i = 0; i < image.features.size(); i++) {
113-
if (track_ids[i] != -1) {
113+
if (track_ids[i] != -1 && reconstruction.ExistsPoint3D(track_ids[i])) {
114114
image_colmap.SetPoint3DForPoint2D(i, track_ids[i]);
115115
}
116116
}
@@ -121,7 +121,10 @@ void ConvertGlomapToColmap(const std::unordered_map<rig_t, Rig>& rigs,
121121

122122
// Deregister frames
123123
for (auto& [frame_id, frame] : frames) {
124-
if (!frame.is_registered) reconstruction.DeRegisterFrame(frame_id);
124+
if ((cluster_id != 0 && !frame.is_registered) || (frame.cluster_id != cluster_id &&
125+
cluster_id != -1)) {
126+
reconstruction.DeRegisterFrame(frame_id);
127+
}
125128
}
126129

127130
reconstruction.UpdatePoint3DErrors();

0 commit comments

Comments
 (0)