Summer of Code - Getting Started: Difference between revisions

→‎Image Analysis: "Improvements to N-dimensional image processing" remove difficult project.
(→‎Infrastructure: Octave Package management, too ambitious for GSoC, move to Projects.)
(→‎Image Analysis: "Improvements to N-dimensional image processing" remove difficult project.)
Line 222: Line 222:


== Image Analysis ==
== Image Analysis ==
=== Improvements to N-dimensional image processing ===
The image package has partial functionality for N-dimensional images. These images exist for example in medical imaging where slices from scans are assembled to form anatomical 3D images. If taken over time and at different laser wavelengths or light filters, they can also result in 5D images. Albeit less common, images with even more dimensions also exist. However, their existence is irrelevant since most of the image processing operations are mathematical operations which are independent of the number of dimensions.
As part of GSoC 2013, the core functions for image IO, {{codeline|imwrite}} and {{codeline|imread}}, were extended to better support this type of images. Likewise, many functions in the image package, mostly morphology operators, were expanded to deal with this type of image. Since then, many other functions have been improved, sometimes completely rewritten, to abstract from the number of dimensions. In a certain way, supporting ND images is also related to choosing good algorithms since such images tend to be quite large.
This project will build on the previous work, and be mentored by the previous GSoC student and current image package maintainer. Planning the project requires selection of functions lacking ND support and identifying their dependencies. For example, supporting {{codeline|imclose}} and {{codeline|imopen}} was better implemented by supporting {{codeline|imerode}} and {{codeline|imdilate}} which then propagated ND support to all of its dependencies. These dependencies need to be discovered first since often they are not being used yet, and may even be missing functions. This project can also be about implementing functions that have [[Image package#Missing functions | not yet been implemented]]. Also note that while some functions in the image package will accept ND images as input, they are actually not correctly implemented and will give incorrect results.
* '''Required skills'''
: m-file scripting, and a fair amount of C++ since a lot of image analysis cannot be vectorized. Familiarity with common computer science algorithms and willingness to read literature describing new algorithms will be useful.
* '''Difficulty'''
: Difficult.
* '''Potential mentor'''
: Carnë Draug


=== Improve Octave's image IO ===
=== Improve Octave's image IO ===