Available Algorithms
The algorithms below are ready to be downloaded. They are generally written in Java for the
Image/Fiji or for the Icy platform, or in ANSI-C for any platform. Some algorithms
are delivered as scripts for Matlab, Maple, or Mathematica. They 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.
Check the conditions of use below.
Inverse Problems Library for Bioimaging
-
GlobalBioIm Library: A Matlab library for solving inverse problems
When being confronted with a new imaging problem, the common experience is that one has to reimplement (if not reinvent)
the wheel (=forward model + optimization algorithm), which is very time consuming and also acts as a deterrent for
engaging in new developments. This Matlab library aims at simplifying this process by decomposing the workflow
onto smaller modules, including many reusable ones since several aspects such as regularization and the
injection of prior knowledge are rather generic. It also capitalizes on the strong commonalities
between the various image formation models that can be exploited to obtain fast, streamlined implementations.
Java plugins for ImageJ and Icy
Plugins for Icy
-
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.
-
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.
-
Shape Designer.
This plug-in implements a user-friendly way to design shape-priors for the Active Cells plug-in.
-
Stereo Viewer. 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.
-
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.
-
BEEPS.
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.
-
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.
-
DeconvolutionLab.
DeconvolutionLab is a software package (ImageJ plugin) to deconvolve 2D or 3D microscopic images based on the knowledge of the PSF.
It implements a variety of deconvolution algorithms:
1) Inverse filter,
2) Regularized inverse filter,
3) Landweber,
4) Threshold Landweber,
5) Tikhonov-Miller,
6) Richardson-Lucy,
7) Richardson-Lucy with TV Regularization.
It also includes a convolution tool to generate simulated dataset with additive noise.
-
Drop Shape Analysis.
New method based on B-spline snakes (active contours) for measuring high-accuracy contact angles of sessile drops.
-
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.
-
Extended Depth of Focus.
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.
-
Fractional spline wavelet transform.
This Java package computes the fractional spline wavelet transform of a signal or an image and its inverse.
-
Image Differentials. 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).
-
Local Normalization.
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.
-
MIJ.
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.
-
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.
-
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.
-
NeuronJ.
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.
-
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)
-
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.
-
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.
-
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.
-
Point Picker.
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.
-
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).
-
Resize.
This ImageJ plugin changes the size of an image to any dimension using either interpolation, or least-squares approximation.
-
RodCellJ.
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.
-
SheppLogan.
The purpose of this ImageJ plugin is to generate sampled versions of the Shepp-Logan phantom. Their size can be tuned.
-
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.
-
SpotCaliper
SpotCaliper is a wavelet-based image-analysis software providing a fast automatic detection scheme for
circular 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.
-
SpotDistance
This ImageJ plugin determines intra-nuclear 3D cross-distances between fluorescent spots in multi-channel z-stack of image.
-
SpotTracker
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.
-
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.
-
Steerable Wavelets Transform Toolbox.
A complete parametric framework and set of Java tools for computing steerable wavelet frames in 2-D.
-
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.
See also the Icy plugin: Feature Detector.
-
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.
-
UnwarpJ.
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.
-
Watershed.
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.
-
WingJ.
WingJ is an open-source Java application using ImageJ.
WingJ allows to automatically infer a model of the morphological structure of the developing Drosophila wing
from confocal fluorescence images. In addition it provides valuable information on the morphology of wing,
using a parametric structure model for systematic spatial quantification of gene expression.
Standalone
ANSI C
Most often, the ANSI-C pieces of code are not a complete program, but rather an element in a library of routines.
-
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.
Java
These pieces of Java code are self-contained. They do not depend on external libraries or software environments such as Icy, ImageJ, or Fiji. They typically contain a few utility methods stored in one or several files, perhaps a class, and sometimes a package.
-
Discrete Fourier transform.
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.
Maple
-
Hex-splines
A novel spline family for hexagonal lattices. A Maple 7.0 worksheet is available for
obtaining the analytical formula of any hex-spline (any order, regular, non-regular, derivatives, and so on).
Mathematica
-
E-splines.
A Mathematica package is made available for the symbolic computation of
exponential spline related quantities: B-splines, Gram sequence, Green function, and localization filter.
Matlab
-
Binary Compressed Imaging.
This Matlab package implements the forward model as well as the reconstruction of the binary compressed imaging.
-
Continuous-Time ARMA Identification.
A Matlab package for estimating Gaussian continuous-time ARMA parameters from sampled data. No sampling interval constraints are imposed.
-
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 wavelet transform.
A Matlab package is available for computing the fractional spline wavelet transform of a signal or an image and its inverse.
-
Generalized Daubechies wavelets.
This is a set of Matlab routines for computing generalized Daubechies wavelet filters.
-
MLTL deconvolution
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.
-
MRI Phantom
This package is a collection of Matlab functions that implements analytical multi-channel MRI simulations of realistic phantoms.
-
MRI Simulation and Reconstruction
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.
-
OWT SURE-LET Denoising
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.
-
Steerable wavelets.
1.
Generalized Riesz-Wavelet Toolbox for Matlab.
Functional framework for the design of tight steerable wavelet frames in 2D.
2.
Generalized Riesz-Wavelet Toolbox for Matlab in 3D.
Functional framework for the design of tight steerable wavelet frames in 3D.
3.
Steerable wavelets in 2D. Circular Wavelets.
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.
-
Symmetric Exponential B-spline.
A Matlab package for calculating symmetric exponential splines: Sobolev reproducing kernels, B-splines and interpolation functions.
-
WSPM
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.
Legal Blurb
Warning & Notice Of Disclaimers
-
**WARNING** By accessing this computer system you are consenting to system monitoring for law enforcement and other purposes.
Unauthorized use of, or access to, this computer system may subject you to criminal prosecution and penalities.
-
The information, opinions, data, and statements contained herein are not necessarily those of the
Lausanne Federal Institute of Technology (EPFL) and should not be interpreted, acted on or represented as such
-
The Swiss Government, EPFL and their employees and contractors do not make any warranty,
express or implied, including the warranties of merchantability and fitness for a particular
purpose with respect to documents available from this server. In addition, the Swiss Government,
EPFL and their employees and contractors assume no legal liability for the accuracy, completeness,
or usefulness of any information, apparatus, product, or process disclosed herein and do not
represent that use of such information, apparatus, product or process would not infringe on
privately owned rights.
-
Reference herein to any specific commercial product, process, or service by trade name,
trademark, manufacturer, or otherwise, does not necessarily constitute or imply its
endorsement, recommendation, or favoring by the Swiss Government, EPFL or any of
their employees or contractors.
-
Documents on this server are sponsored by the EPFL, along with private companies and other
organizations. Accordingly, other parties may retain all rights to publish or reproduce these
documents or to allow others to do so. Documents available from this server may be protected
under the Swiss and foreign Copyright laws. Permission to reproduce may be required.
© 2019 EPFL • • 04.07.2019