Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
GSoC 2019 Experience

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.

Features Developed During GSoC 2019

GitHub Link:

1. Thresholding

  • 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

2. Convolution:

  • 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.

3. De-Noising Image:

  • During GSoC Box-filter and blur filters were implemented. There are plans to implement the Median filter and Wiener filter shortly.

Links To the work:

My Mentor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment