Reuse image pair io functionality #1281
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR intends to prevent #1279 from happening again until functional tests for full pipeline are written.
The root cause of #1279 was that
operator<<
was used in a place where exact file format is expected. It's hard to search for usages ofoperator<<
, so embedding important functionality there is error-prone, as unsuspecting developer may think that the end consumer of the output is human, not other tools. Another cause for the bug was that there were multiple sources of truth on how to output pair list, so there was always likelihood of the accidentally making incompatible changes.This PR solves the above problems by making image pairs to use a single format defined in
imageMatchingComponent
.savePairs
has been enhanced to write pairs in the same format asloadPairs
accept, namely multiple image pairs per line.All file IO functionality has been moved to separate functions to aid testing.
Finally,
savePairs
replacesoperator<<
for image pairs output.