On Tue, 4 Feb 2020 at 16:11, deb via Boost
Hi, I am a third year undergrad from IIT Bombay. I am interested in PROJECT 1: Image Processing Algorithms for BOOST.GIL .
Welcome!
I have gone through the Getting started with Boost, Modular Boost Overview and Contributing page(on git repository for boost.gil) to get a fair idea of how Boost works.
Yup, great, that's what you need to get you going.
I went over the boost Gil library looking for an implementation of FFT(Fast Fourier transform) but could not find one.
Since it is listed as a suggested project topic for the GSoC 2020, I was hoping to implement it as part of my GSoC competency test.
Well, speaking as one of GIL development team members together with Stefan, I agree with explanation posted by Stefan in https://lists.boost.org/Archives/boost/2020/02/248147.php As a result of that consensus, I have just removed the FFT from suggestions of the GSoC projects. As Stefan explained, we would rather prefer to adapt third-party implementations FFT for GIL which, presumably, would be hosted as GIL extensions. Although I have not given the FFT for GIL much consideration yet myself, I, personally, think there is room in GIL for an extension with a classic and not necessarily high-performance/optimal implementation of FFT that would several purposes as: - a proof of concept - educational examples - test stub exercising interface adapting an FFT implementation The FFT adapter interface itself has never been discussed, AFAIK, so any input is welcome here or on https://lists.boost.org/boost-gil/ However, such discussions and contribution of implementation is likely beyond the scope of a GSoC project.
I have a few questions though:-
a. Should I try and implement 1D-DFT(using FFT) independent from 2D-DFT (which is the more popular among image processing algorithms) ?
I think this is answered by Stefan and myself above .
b. Should I submit the above mentioned algorithms as separate PRs or as a single one?
Generally, it's a good idea to submit one PR per one functional feature.
I am choosing FFT over other topics since it is an essential part of many image processing algorithms like Wiener filters, tomographic reconstructions etc. I have worked with image processing algorithms before on college projects and I think that I will be able to pull it off as a GSoC competency test.
The aim of the test is to show minimum required fluency in C++ and the subject Boost library, while a complete implementation of an algorithm takes much more and is not what the GSoC competency test is asking for. As I have already mentioned to one of the other students keen in GIL, see https://github.com/boostorg/gil/pull/430#issuecomment-581576130, a complete feature takes more than 100 lines of C++ code of an algorithm implementation. It requires tests and docs. BTW, during last year GSoC we did not quite succeeded as I planned w.r.t. the docs especially and the tests could cover more too. So, I'd expect we are going to raise the bar a bit higher this year :-) Please, don't feel discouraged, just take it as a warning to avoid overestimation of the work capacity required, as Stefan mentioned. It's better to aim for less, a simpler task, but deliver it with a complete excellent solution on time. Best regards, -- Mateusz Loskot, http://mateusz.loskot.net