From 758e165e83ef8e69ac1d43229ddbd570f95c701a Mon Sep 17 00:00:00 2001 From: Dmitry Zolotukhin Date: Thu, 30 May 2024 02:10:32 +0200 Subject: [PATCH] Merge tracks after finding the best match. --- src/reconstruction.rs | 17 +++++++++-------- src/triangulation.rs | 1 - 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/reconstruction.rs b/src/reconstruction.rs index 7b28c48..1879e62 100644 --- a/src/reconstruction.rs +++ b/src/reconstruction.rs @@ -276,15 +276,7 @@ pub fn reconstruct(args: &Args) -> Result<(), ReconstructionError> { f_matrices_i.push(f); } f_matrices.push(f_matrices_i); - - reconstruction_task.merge_tracks(img_i, img1_filename.as_str())?; } - reconstruction_task.merge_tracks( - images_count - 1, - reconstruction_task.img_filenames[images_count - 1] - .to_owned() - .as_str(), - )?; let linked_images = match reconstruction_task.recover_camera_poses() { Ok(img_index) => img_index, @@ -665,6 +657,15 @@ impl ImageReconstruction { t.as_secs_f32() ); } + + images.iter().try_for_each( + |img_i| -> Result<(), triangulation::TriangulationError> { + let img_filename = self.img_filenames[*img_i].to_owned(); + self.merge_tracks(*img_i, img_filename.as_str())?; + Ok(()) + }, + )?; + camera_order.append(&mut images); } diff --git a/src/triangulation.rs b/src/triangulation.rs index 808332c..13fb9aa 100644 --- a/src/triangulation.rs +++ b/src/triangulation.rs @@ -808,7 +808,6 @@ impl PerspectiveTriangulation { self.cameras[best_candidate] = Some(camera2); self.projections[best_candidate] = Some(projection2); - self.triangulate_tracks(); Ok(vec![best_candidate]) }