See the complete executable example in test/Acceptance.test.cpp.
In the following, the main steps are explained.
Processor must be registered in the pipeline so they can be loaded.
PipelineController controller;
controller.registerImageProcessor<Processor1>(processor1Name);
controller.registerImageProcessor<Processor2>(processor2Name);
Frame source path and processors to be loaded are defined in the configuration.
controller.loadPipeline(pipelineConfiguration);
An observer is a class that inherits from Observer, so a update method must be implemented which will be called when the pipeline finish processing.
controller.registerObserver(observer);
Will call observer when finishes
controller.firePipelineProcessing();
After the pipeline finishes, each image processor debug image can be retrieved.
auto debugImageProcessor1{controller.getDebugImageFrom(processor1Index)};
auto debugImageProcessor2{controller.getDebugImageFrom(processor2Index)};
Processor parameters can be configured anytime.
configureProcessor(processorIndex, configuration);