MCPcopy Create free account
hub / github.com/colmap/colmap / CopyRegisteredImage

Function CopyRegisteredImage

src/colmap/estimators/alignment.cc:443–470  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441namespace {
442
443void CopyRegisteredImage(image_t image_id,
444 const Sim3d& tgt_from_src,
445 const Reconstruction& src_reconstruction,
446 Reconstruction& tgt_reconstruction) {
447 const Image& src_image = src_reconstruction.Image(image_id);
448 if (!tgt_reconstruction.ExistsCamera(src_image.CameraId())) {
449 tgt_reconstruction.AddCamera(
450 src_reconstruction.Camera(src_image.CameraId()));
451 }
452 if (!tgt_reconstruction.ExistsRig(src_image.FramePtr()->RigId())) {
453 tgt_reconstruction.AddRig(
454 src_reconstruction.Rig(src_image.FramePtr()->RigId()));
455 }
456 if (!tgt_reconstruction.ExistsFrame(src_image.FrameId())) {
457 Frame tgt_frame = src_reconstruction.Frame(src_image.FrameId());
458 tgt_frame.ResetRigPtr();
459 tgt_reconstruction.AddFrame(std::move(tgt_frame));
460 const Rigid3d cam_from_tgt_world =
461 TransformCameraWorld(tgt_from_src, src_image.CamFromWorld());
462 tgt_reconstruction.Frame(src_image.FrameId())
463 .SetCamFromWorld(src_image.CameraId(), cam_from_tgt_world);
464 }
465
466 Image tgt_image = src_image;
467 tgt_image.ResetCameraPtr();
468 tgt_image.ResetFramePtr();
469 tgt_reconstruction.AddImage(std::move(tgt_image));
470}
471
472} // namespace
473

Callers 1

MergeReconstructionsFunction · 0.85

Calls 15

TransformCameraWorldFunction · 0.85
CameraIdMethod · 0.80
FramePtrMethod · 0.80
ResetRigPtrMethod · 0.80
CamFromWorldMethod · 0.80
SetCamFromWorldMethod · 0.80
ResetCameraPtrMethod · 0.80
ResetFramePtrMethod · 0.80
ImageMethod · 0.45
ExistsCameraMethod · 0.45
AddCameraMethod · 0.45
ExistsRigMethod · 0.45

Tested by

no test coverage detected