The algorithms below are ready to be downloaded and usable on any platform. Some basic algorithms of image processing as written as Demos, they are runnable directly on a browser.
The algorithms have written either by students or by the members of the Biomedical Imaging Group. Please contact the author of the algorithms if you have a specific question. In addition, many algorithms have a public open-source repository on github.
Imaging Plugin
Image Registration
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz | GPLv3
- TurboReg
- This Java class for ImageJ performs the registration (alignment) of two images. The registration criterion is least-squares. The geometric deformation model can be translational, conformal, affine, and bilinear.
- StackReg
- This Java class for ImageJ performs the recursive registration (alignment) of a stack of images, so that each slice acts as template for the next one.
- MosaicJ
- This Java class for ImageJ performs the assembly of a mosaic of overlapping individual images, or tiles. It provides a semi-automated solution where the initial rough positioning of the tiles must be performed by the user, and where the final delicate adjustments are performed by the plugin.
Fluorescence Microscopy Tools
Java | Accessible on bigwww.epfl.ch | Daniel Sage | GPLv3
- PixBleach
- PixBleach is a ImageJ plugin which fits fluorescence photobleaching decay in the temporal sequence for every pixels. Three common decal models are available: the mono-exponential, the bi-exponential, and the stretched exponential. Bleach rate (time-constant) and other fitted parameters can be visualized as 32-bit image and exploited for further analysis.
- PixFRET
- The ImageJ plug-in PixFRET allows to visualize the FRET between two partners in a cell or in a cell population by computing pixel by pixel the images of a sample acquired in three channels.
- PureDenoise
- The purpose of this ImageJ plugin is to propose a high-quality denoising algorithm of multidimensional fluorescence microscopy images (2D+t, 3D or color).
3D Deconvolution Microscopy and PSF Generator Github
Java | Accessible on bigwww.epfl.ch | Daniel Sage | GPLv3
- 3D Deconvolution Microscopy
- DeconvolutionLab2 is freely accessible and open-source for 3D deconvolution microscopy; it can be linked to well-known imaging software platforms, ImageJ, Fiji, ICY, Matlab, and it runs as a stand-alone application. The backbone of our software architecture is a library that contains the number-crunching elements of the deconvolution task. It includes the tool for a complete validation pipeline. Inquisitive minds inclined to peruse the code will find it fosters the understanding of deconvolution. At this stage, DeconvolutionLab2 includes a friendly user interface to run the following algortihms: Regularized Inverse Filter, Tikhonov Inverse Filter, Naive Inverse Filter, Richardson-Lucy, Richardson-Lucy Total Variation, Landweber (Linear Least Squares), Non-negative Least Squares, Bounded-Variable Least Squares, Van Cittert, Tikhonov-Miller, Iterative Constraint Tikhonov-Miller, FISTA, ISTA.
- PSF Generator
- PSF Generator is a piece of software that allows to generate and visualize various 3D models of a microscope PSF. The current version has five different models: the Gaussian model, the simulated defocus, the scalar-based diffraction model Born & Wolf, the scalar-based diffraction model with 3 layers Gibson & Lanni, and finally, the vectorial-based model Richards & Wolf.
Directional Image Analysis Github
Java | Accessible on bigwww.epfl.ch | Daniel Sage | GPLv3
- OrientationJ
- The aim of this ImageJ plugin is to characterize the orientation and isotropy properties of a region of interest (ROI) in an image, based on the evaluation of the structure tensor in a local neighborhood. OrientationJ has four functionalities: visual representation of the orientation, quantitative orientation measurement, making distribution of orientations and corner detection (Harris Corner)
- MonogenicJ
- This ImageJ plugin performs multiresolution monogenic analyses of 2D images. It extracts wavelet-domain features that characterize the local orientation, the phase and the dominant frequency of an image patch at various levels of resolution.
- SteerableJ
- This ImageJ plugin implements a series of optimized contour and ridge detectors. The filters are steerable and are based on the optimization of a Canny-like criterion. They have a better orientation selectivity than the classical gradient or Hessian-based detectors.
Active Cells: Set of Icy Plugings for Segmentation Source on Icy
Java | Accessible on Icy | BIG Snake team
- Active Cells
- This is a plug-in for Icy that implements fast active contours for image segmentation. Their representation in terms of spline curves allows for a natural and intiutive manipulation of the active contour through control points. The software allows one to manage several active contours simultaneously, and to keep record of their location and size through the ROI persistence capability of Icy.
- Active Cells 3D
- This is a plug-in for Icy that implements fast active surfaces for 3D image segmentation. Their representation in terms of spline surfaces allows for a natural and intuitive manipulation of the surface. The software allows one to manage several active contours simultaneously, and to have synchronized 2D and 3D viewers simultaneously.
- Active Cells SDK
- This is a package for Icy that encapsulates tools to design and implement parametric active contours. The package provides fast 2D and 3D filters for image preprocessing, and a framework to create and evolve snakes defined by a set of control points.
- Feature Detector
- The Icy Feature Detector plug-in implements a series of optimized contour and ridge detectors. The filters are steerable and are based on the optimization of a Canny-like criterion. They have a better orientation selectivity than the classical gradient or Hessian-based detectors.
- Potts Segmentation
- The plug-in implements a segmentation algorithm based on the Potts model. It works with graylevel, color or vector-valued images. The user can edit segments (e.g. merge or refine) and export the segments to the ROI manager. A quick preview function is available.
Collection of Active Contours 2D/3D Source on Icy
Java | Accessible on Icy | Anaïs Badoual
- Active Tessellation
- This plugin implements active contours to segment cell aggregates. They are robust to membrane gaps and to high levels of noise. Their subdivision-based representation allows for an intuitive manipulation of the curves through control points.
- Locally Refinable Snake
- This plugin implements fast active contours for biomedical image segmentation. Through the interface, one can locally increases the degrees of freedom of the curves. It allows to catch details of intricate shapes.
- Subdivision Snake
- This plugin implements fast active contours for biomedical image segmentation. They adapt the resolution of their curve to the level of details of their target. Their subdivision-based representation allows for an intuitive manipulation of the curves through control points.
- Active Subdivision Surface
- This plugin implements active surfaces to segment biomedical volumes They adapt the resolution of their curve to the level of details of their target. Their subdivision-based representation allows for an intuitive manipulation of the curves through control points.
- Texture Snake
- This plugin implements active contours to segment structures with similar intensity distribution and low contrast with the background. They are trained on-the-fly from small collections of pixels provided by the user. Their parametric representation allows for an intuitive manipulation of the curves through control points.
Basic Snakes
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
- Snakuscule
- The purpose of this ImageJ plugin is to detect circular bright blobs in images and to quantify them. It allows one to keep record of their location and size.
- Ovuscule
- The purpose of this ImageJ plugin is to detect elliptical bright blobs in images and to quantify them. It allows one to keep record of their location and size.
- E-Snake
- This ImageJ plugin (ESnake) implements a fast parametric active contour for segmenting nearly elliptic objects. ESnake outlines the targets using exponential B-splines, and it allows one to keep record of the curve with the ROI Manager from ImageJ.
Circadian Analysis Tools
Java | Accessible on bigwww.epfl.ch | Daniel Sage
- Circadian Gene Expression
- This ImageJ plugin (CGE) is a semi-automatic tool to detect and track moving cell, and to measure the fluorescent protein expression level. CGE extracts the trajectory of the cells by tracking their displacements, makes the delineation of cell nucleus or whole cell, and finally yields measurements of various features, like reporter protein expression level, cell displacement.
- CosinorJ
- CosinorJ is a Java software tool to quantify circadian oscillatory gene expression profiles. It fits a cycling function to accurate estimate of the period, mesor, accrophase and amplitude of any rhythm signals of chronobiology.
Java | Accessible on bigwww.epfl.ch | Daniel Sage
The extended depth of focus is a image-processing method to obtain in focus microscopic images of 3D objects and organisms. We freely provide a software as a plugin of ImageJ to produce this in-focus image and the corresponding height map of z-stack images.
Java | Accessible on external website | Erik Meijering
This Java class for ImageJ was developed to facilitate the tracing and quantification of neurites in two-dimensional (2D) fluorescence microscopy images. The tracing is done interactively based on the specification of end points; the optimal path is determined on the fly from the optimization of a cost function using Dijkstra's shortest-path algorithm.
Java | Accessible on bigwww.epfl.ch | Daniel Sage
New method based on B-spline snakes (active contours) for measuring high-accuracy contact angles of sessile drops.
Java | Accessible on bigwww.epfl.ch | Daniel Schmitter
RodCellJ is freely available to the community as a package of several ImageJ plugins to simultaneously analyze the behavior of a large number of rod-shaped cells in an extensive manner. The integration of different image-processing techniques in a single package, as well as the development of novel algorithms does not only allow to speed up the analysis with respect to the usage of existing tools, but also accounts for higher accuracy.
Java | Accessible on bigwww.epfl.ch | Daniel Sage
SpotCaliper is a wavelet-based image-analysis software providing a fast automatic detection scheme forcircular patterns (spots), combined with the precise estimation of their size. It is implemented as an ImageJ plugin with a complete user interface. The user is allowed to edit the results by modifying the measurements (in a semi-automated way), extract or load data, or do further analysis. The fine tuning of the detections includes the possibility of adjusting or removing the original detections, as well as adding further spots.
Java | Accessible on bigwww.epfl.ch | Daniel Sage
This ImageJ plugin determines intra-nuclear 3D cross-distances between fluorescent spots in multi-channel z-stack of image.
Java | Accessible on bigwww.epfl.ch | Daniel Sage
This ImageJ plugin is a robust and fast computational procedure for tracking fluorescent markers in time-lapse microscopy. The algorithm is optimized for finding the time-trajectory of single particles in very noisy image sequences.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
This Java class for ImageJ performs the elastic registration (alignment) of two images. The registration criterion includes a vector-spline regularization term to constrain the deformation to be physically realistic. The deformation model is made of cubic splines, which ensures smoothness and versatility.
Java | Accessible on bigwww.epfl.ch | Daniel Sage | 6 juin 2018
This Java plugin is able to segment an image using the watershed algorithm by directly flooding graylevel images. This implementation is in contrast with the classical approach working on the distance map image obtaining after thresholding. The grayscale watershed segmentation is useful to segment particles in contact when the model of shape is unknown a priori.
Tools
Java | Accessible on Icy | Ricard Delgado-Gonzalez
This is a plug-in for Icy that implements a stereo vision system. Renders 3D stacks simulating a dual view camera. Each 3D view is rendered in fullscreen in a different monitor.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
This ImageJ plugin smoothes an image without altering its edges. The smoothing is applied by the way of a bi-exponential filter, itself realized by a pair of one-tap recursions. It is therefore very fast; moreover, its computational cost is truly independent of the amount of smoothing. Meanwhile, the preservation of edges is obtained by a range filter akin to the range filter found in a bilateral filter.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
This Java class for ImageJ implements 6 operations based on the spatial differentiation of an image. It computes the pixel-wise gradient, Laplacian, and Hessian. The class exports public methods for horizontal and vertical gradient and Hessian operations (for those programmers who wish to use them in their own code).
Java | Accessible on bigwww.epfl.ch | Daniel Sage | 2020
The local normalization tends to uniformize the mean and variance of an image around a local neighborhood. This is especially useful for correct uneven illumination or shading artifacts. Thanks to our fact implementation of the Gaussian filtering, the Local Normalization is running very fast.
Java | Accessible on bigwww.epfl.ch | Daniel Sage | 2018
MIJ offers the missing link between two imaging software: ImageJ/Fiji and Matlab. The goal of the package mij.jar is to provide static methods to exchange images and volumes. MIJ allows also to access to all built-in functions of ImageJ and to third-part plugins of ImageJ. MIJ is integrated in Fiji with a super-easy script to use it. Thanks to the Fiji team, MIJ is now super-easy to use using a Matlab script Miji.m which is integrated in Fiji. ImageJ/Fiji becomes a image-processing librairie of Matlab.
Java | Accessible on bigwww.epfl.ch | Arrate Muñoz Barrutia
This ImageJ plugin changes the size of an image to any dimension using either interpolation, or least-squares approximation.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
The purpose of this ImageJ plugin is to generate sampled versions of the Shepp-Logan phantom. Their size can be tuned.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
This Java class for ImageJ allows the user to pick some points in an image and to save the list of pixel coordinates as a text file. It is also possible to read back the text file so as to restore the display of the coordinates.
Java | Accessible on bigwww.epfl.ch | Philippe Thévenaz
This Java class contains methods to perform Fourier-related operations on discrete sequences, images, and volumes. The operations can be tailored to real or complex data and include forward and backward Fourier transforms, convolutions, and polar/rectangular view of complex numbers.
Spline & Wavelets
Steerable Wavelets Project
Matlab | Accessible on bigwww.epfl.ch | Nicolas Chenouard, Zsuzanna Püspöki, Virgine Uhlmann | 2013-2015
- Generalized Riesz-Wavelet Toolbox for Matlab
- Functional framework for the design of tight steerable wavelet frames in 2D. A toolbox that contains Matlab routines for computing the forward and backward generalized Riesz-wavelet transform of high order is provided. We have included utilities for orientation computation, coefficients steering, basic denoising, frame learning
- Steerable wavelets in 2D. Circular Waveletss
- A complete parametric framework and set of matlab tools for computing steerable wavelet frames in 2-D. Specific designs include Simoncelli's pyramid, Marr and monogenic wavelets, Prolate spheroidal wavelets, and curvelets.
- Steerable Wavelets Transform Toolbox
- A complete parametric framework and set of Java tools for computing steerable wavelet frames in 2-D.
Fractional spline and fractals
Matlab | Accessible on bigwww.epfl.ch | Thierry Blu | 2006
- Fractional spline and fractals
- A Matlab package is available for computing the fractional smoothing spline estimator of a signal and for generating fBms (fractional Brownian motion). This spline estimator provides the minimum mean squares error reconstruction of a fBm (or 1/f-type signal) corrupted by additive noise.
- Fractional spline and fractals
- A Matlab package is available for computing the fractional spline wavelet transform of a signal or an image and its inverse.
Matlab | Accessible on bigwww.epfl.ch | Cédric Vonesch | 2010
This is a set of Matlab routines for computing generalized Daubechies wavelet filters.
Matlab | Accessible on bigwww.epfl.ch | Cédric Vonesch | 2009
This Matlab package implements the MultiLevel Thresholded Landweber (MLTL) algorithm, an accelerated version of the TL algorithm that was specifically developped for deconvolution problems with a wavelet-domain regularization.
Matlab | Accessible on bigwww.epfl.ch | Aurélien Bourquard | 2014
This Matlab package implements the forward model as well as the reconstruction of the binary compressed imaging.
Matlab | Florian Luisier
This Matlab package implements the interscale orthonormal wavelet thresholding algorithm based on the SURE-LET (Stein's Unbiased Risk Estimate/Linear Expansion of Thresholds) principle.
Routines for Spline Processing
ANSI C | Accessible on bigwww.epfl.ch | Philippe Thévenaz, Michael Unser
- Affine transformation
- This ANSI-C routine performs an affine transformation on an image or a volume. It proceeds by resampling a continuous spline model.
- Registration
- This ANSI-C routine performs the registration (alignment) of two images or two volumes. The criterion is least-squares. The geometric deformation model can be translational, rotational, and affine.
- Shifted linear interpolation
- This ANSI-C program illustrates how to perform shifted linear interpolation.
- Spline interpolation
- This ANSI-C program illustrates how to perform spline interpolation, including the computation of the so-called spline coefficients.
- Spline pyramids
- This software package implements the basic REDUCE and EXPAND operators for the reduction and enlargement of signals and images by factors of two based on polynomial spline representation of the signal.
Medical Imaging
Matlab | Accessible on bigwww.epfl.ch | Matthieu Guerquin-Kern | 2014
This package is a collection of Matlab functions that implements analytical multi-channel MRI simulations of realistic phantoms. It should be useful for testing the validity of the numerical implementations of the parallel MRI forward model. It also provides a realistic setting that avoids the inverse crime situation which can often result in over-optimistic reconstruction performances. To facilitate the design of new phantoms, graphical interface tools are provided. For purposes of adequate visualization, exporting to the popular vector graphics formats SVG 1.1 and PDF (via the PGF/Tikz LATEX package) is supported.
Matlab | Accessible on bigwww.epfl.ch | Matthieu Guerquin-Kern | 2014
This package is a collection of Matlab functions that provides 1) analytical and rasterized multi-channel MRI simulations of realistic phantoms and 2) a collection of basic and state-of-the-art reconstruction methods including an efficient wavelet-based non-linear one. Demonstration and testing scripts are included. A detailed documentation is provided. The analytical phantom simulation tools allow sound validations of reconstruction methods. The reconstruction framework is rather general and should be easy to adapt to any linear inverse problem. Wavelet transform and wavelet coefficients can be easily manipulated like Matlab's matrices and vectors.
Matlab | Accessible on bigwww.epfl.ch | Dimitri Van de Ville | 15 October 2008
Wavelet-based statistical parametric mapping, a toolbox for SPM that incorporates powerful wavelet processing and spatial domain statistical testing for the analysis of fMRI data.