I worked with Boost C++ Libraries in GSoC 2019 to develop and include new image processing algorithms in Boost.GIL which can help to eliminate the need of other libraries to a certain extent. This would cover specific basic algorithms which can be used to develop other advanced image processing algorithms.
GitHub Link: https://github.com/BoostGSoC19/gil-miral
- Simple Thresholding:
Setting new pixel value according to the current value of pixel if it is above or below a threshold value. Multiple types of simple thresholding algorithms implemented:
- Binary Threshold
- Inverse Binary Threshold
- To Zero (new pixel value set to 0 if the old pixel value is less than the threshold)
- To Zero Inverse (new pixel value set to 0 if the old pixel value is greater than the threshold)
- Adaptive Thresholding:
Threshold values are defined according to the neighbor of the pixel and new values are set accordingly. Two main types of Adaptive Thresholding algorithms implemented.
- Mean Adaptive Threshold
- Gaussian Adaptive Threshold
- Optimal Thresholding:
This type of threshold chooses a global threshold value depending on the histogram and then performs binarization.
- Otsu's Threshold
- Extended support for the existing convolution by developing new classes for 2-dimensional kernels and provided functions to perform 2D convolution using those 2D kernels.
- During GSoC Box-filter and blur filters were implemented. There are plans to implement the Median filter and Wiener filter shortly.
My mentor Mateusz Łoskot helped me out in finding mistakes in my codes as well as whenever I am stuck with any problem. My interaction with him was productive and important for the success of the project. He reviewed my code on a regular interval which led me to write code with better quality.
A special thanks to Stefan Seefeld who guided me through the process of the GSoC and helped me to come up with a good project proposal.