Difference between revisions of "GSoC 2011 Ideas"

(Created page with '== 3-way viewer for Block-Face EM image volumes based in ImgLib cells == The Imglib provides a cell container, where each cell is an arbitrary n-dimensional image block pote...')
(No difference)

Revision as of 12:08, 9 March 2011

3-way viewer for Block-Face EM image volumes based in ImgLib cells

The Imglib provides a cell container, where each cell is an arbitrary n-dimensional image block potentially paged out to a file. Consider the specific case of isotropic 3d-cells stored with lossless compression. This setup would enable efficient browsing and analysis of image volumes larger than available RAM, while observing a specific 3d ROI from XY, YZ and XZ planes. These image volumes are common in Block-Face Serial Scanning Electron Microscopy, a technique now commercialized as "Gatan 3-way view EM." See this page for theory and for pictures and examples.

Goal: create a 3-way viewer for a 3d instance of an Imglib's cell container.
Language: any supported by Fiji, preferably java.
Contact: Albert Cardona

Applying machine learning to the image segmentation problem

The term image segmentation describes the task where objects in an image are to be outlined, so that every pixel is connected to either a named object, or background.

Segmentation is traditionally a very difficult problem, especially in the presence of variable lighting, noise, or low contrast.

Many segmentation algorithms have been implemented in Fiji to perform image segmentation, such as Auto Threshold and Auto Local Threshold, but in practice, none of them might work, as they were designed with specific images in mind, and these expectations might not be met by your images.

Recently, a new class of segmentation algorithms has been emerging: segmentation by example. These algorithms require a set of examples from which a model is calculated which can be applied to other -- similar-looking -- images.

We will consider applications for implementations that are either as generic as possible (i.e. they apply to any images), or that try to solve a very specific problem (such as segmenting neurons in serial sections imaged with electron microscopy, or with confocal imaging.)

We have several data sets of images and their corresponding manual segmentations (for training the algorithm). See for example:

You are welcome to use any scientifically-relevant dataset of your choice, but we will give priority to biologically-oriented data sets.

Goal: Implement a number of segmentation algorithms based on machine learning.
Language: Java.
Mentor: Ignacio Arganda-Carreras, Albert Cardona

Implementing algorithms for Imglib

The new imglib supports dimension-, storage- and data type independent image processing. This library has some algorithms built-in already but there is a strong need to generically implement more general image processing algorithms, storage strategies and data types such as:

  • Interpolation (Cubic, Spline, ...)
  • Entropy Filter, Average Filter, Percentile(Min, Median, Max) Filter, ...
  • Memory Management for partial image loading
  • Color Spaces and Color Space Conversions
  • Efficient representation of non-raster images (based on 2d polygonal shapes and 3d/4d meshes)

Goal: Implement generic algorithms for image processing.
Language: Java.
Mentor: Stephan Preibisch, Stephan Saalfeld], Tobias Pietzsch, Albert Cardona

Wavelet inpainting

Implement a simple inpainting method (i.e. restore missing/unwanted parts of the image marked by a ROI) using wavelets: apply the wavelet transform, and then, on each level, use a diffusion algorithm to deduce a smooth signal from the surrounding parts, and finally inverse-transform the wavelet to get the restored image.

Goal: implement a plugin for interactive calligraphic effects.
Language: Java.
Mentor: [ Albert Cardona])