Summer of Code - Getting Started: Difference between revisions

→‎Improvements to N-dimensional image processing: more details on project and remove warning about missing mentor
(→‎Improvements to N-dimensional image processing: more details on project and remove warning about missing mentor)
Line 424: Line 424:
=== Improvements to N-dimensional image processing ===
=== Improvements to N-dimensional image processing ===


{{Warning|requires review and mentor}}
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.


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, or even exposures taken over time at different wavelengths can result in 5D images. As part of GSoC 2013, the core functions {{codeline|imwrite}} and {{codeline|imread}} were extended to better support this type of image. Likewise, many functions in the image package, mostly morphology operators, were expanded to deal with this type of image. Still, many are left, specially image transformation and analysis of ROIs.
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 large images tend to be quite large.


Note that while many functions in the image package will not complain about ND images, they are actually not correctly implemented and will give incorrect results for ND.
This project will continue 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 function. This project can also be about implementing functions that have [http://wiki.octave.org/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 CS algorithms and willingness to read literature describing new algorithms will be useful.  
'''Required skills''': m-file scripting, and a fair amount of C++ since a lot of image analysis cannot be vectorized. Familiarity with common CS algorithms and willingness to read literature describing new algorithms will be useful.  
Line 435: Line 435:


'''Potential mentor''': Carnë Draug
'''Potential mentor''': Carnë Draug


=== Color management functions in image package ===
=== Color management functions in image package ===