Skip to content

Commit

Permalink
sfmMerge can merge Intrinsics
Browse files Browse the repository at this point in the history
  • Loading branch information
servantftechnicolor committed Jan 27, 2025
1 parent d9d6a44 commit 96b56af
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/software/utils/main_sfmMerge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,21 @@ bool simpleMerge(sfmData::SfMData & sfmData1, const sfmData::SfMData & sfmData2)
auto& intrinsics2 = sfmData2.getIntrinsics();
const size_t totalSize = intrinsics1.size() + intrinsics2.size();

intrinsics1.insert(intrinsics2.begin(), intrinsics2.end());
if (intrinsics1.size() < totalSize)
//If both sfm share a common intrinsicId
//Make sure there is no ambiguity and the content is the same
for (const auto & [key, intrinsic] : intrinsics1)
{
ALICEVISION_LOG_ERROR("Unhandled error: common intrinsics ID between both SfMData");
return false;
const auto & itIntrinsicOther = intrinsics2.find(key);
if (itIntrinsicOther != intrinsics2.end())
{
const auto & obj1 = *intrinsic;
const auto & obj2 = *(itIntrinsicOther->second);

if (!(obj1 == obj2))
{
ALICEVISION_LOG_ERROR("Unhandled error: common intrinsic ID with different parameters between both SfMData");
}
}
}
}

Expand Down

0 comments on commit 96b56af

Please sign in to comment.