Boost logo

Boost :

From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2020-02-04 23:49:45


On Tue, 4 Feb 2020 at 16:11, deb via Boost <boost_at_[hidden]> wrote:
>
> 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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk