Integration of the MultiImageFileWriter into the application engine.
Some applications have more than one output and therefore would benefit from synchronized writing :
- ImageClassifier : 3 dependents outputs : 1 mandatory output and two optional outputs
- SOMClassification : 2 independent outputs. (training step with optional som output, classification step with mandatory output)
- DimensionalityReduction : 2 optional dependent outputs
- MorphologicalMultiScaleDecompostion : 3 mandatory dependent outputs
- ComputeModulusAndPhase : 2 output sharing the same reader (reader -> modulusFilter -> out1 and reader -> phaseFilter -> out2)
- HooverCompareSegmentation : 2 dependent optional outputs
- MeanShiftSmoothing : 2 dependents outputs (1 mandatory 1 optional)
- BlockMatching : 2 dependents outputs (1 mandatory 1 optional)
- FineRegistration : 2 dependents outputs (1 mandatory 1 optional). The pipeline is split in two atm.
- StereoGridRectificationGridGenerator : 4 output (2 optional) but not streamable ?
With this merge request a multiImageFileWriter is created and configured in the WriteOutput method of the Application class.
MultiWriting should be enabled in applications by using
SetMultiWriting(true) in the
DoInit() of the application. It can be disabled for specific output by using the
multiwrite extended filename parameter.
The OutputImageParameter class has been modified so it can register its associated writer to a multiImageFileWriter during the writer creation.
The MR also includes several bugfixes on the multiImageFileWriter
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
Check before merging:
- All discussions are resolved
- At least 2
👍votes from core developers, no 👎vote.
- The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run
git diff develop... -U0 --no-color | clang-format-diff.py -p1 -ion latest changes and commit