During the project, we refactored proc_image_processing following the requirements of the club. The views below are pertinent to understand the architecture of this module.
The server package is mainly responsible for the ROS communication with the other modules in the S.O.N.I.A architecture. It can start detection tasks involving filter chains. A filterchain is a list of filters that will be applied in a specific order to an image received by the module provider_vision with a ROS topic.
The filters package contains the filters that can compose filter chains. Those filters are implemented with algorithms that are grouped in the algorithm package.
In the end, those algorithms use image processing functions from the OpenCV library.
The Filterchain class is responsible for applying a chain of filters over the images. An image is passed as an input argument to the Filterchain and processed by applying multiple filters on it. Finally, it is sent out as a processed image that can be used by the detection algorithms.