Archive for the 'matlab' Category

The algorithms below are ready to be downloaded. Biomedical Imaging Group. EPFL

Available Algorithms

The algorithms below are ready to be downloaded. They are generally written in JAVA or in ANSI-C, 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.
JAVA: Plug-ins for ImageJ
JAVA classes are usually meant to be integrated into the public-domain software ImageJ.
bullet Drop Shape Analysis. New method based on B-spline snakes (active contours) for measuring high-accuracy contact angles of sessile drops.
bullet 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.
bullet Fractional spline wavelet transform. This JAVA package computes the fractional spline wavelet transform of a signal or an image and its inverse.
bullet 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).
bullet 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.
bullet 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. The procedure also takes advantage of an improved ridge detector implemented by means of a steerable filterbank.
bullet 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.
bullet 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.
bullet Resize. This ImageJ plugin changes the size of an image to any dimension using either interpolation, or least-squares approximation.
bullet SheppLogan. The purpose of this ImageJ plugin is to generate sampled versions of the Shepp-Logan phantom. Their size can be tuned.
bullet 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.
bullet SpotTracker Single particle tracking over noisy images sequence. SpotTracker 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. The optimal trajectory of the particle is extracted by applying a dynamic programming optimization procedure.
bullet 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. This plugin requires that TurboReg is installed.
bullet Steerable feature detectors. 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.
bullet 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.
bullet 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.
Most often, the ANSI-C pieces of code are not a complete program, but rather an element in a library of routines.
bullet Affine transformation. This ANSI-C routine performs an affine transformation on an image or a volume. It proceeds by resampling a continuous spline model.
bullet 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.
bullet Shifted linear interpolation. This ANSI-C program illustrates how to perform shifted linear interpolation.
bullet Spline interpolation. This ANSI-C program illustrates how to perform spline interpolation, including the computation of the so-called spline coefficients.
bullet 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.
bullet 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.
bullet 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.
bullet 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.
bullet 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).
bullet 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.
bullet 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.
bullet 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.

code; matlab; mesh; Source Signal Imaging, developers of EMSE Suite. EMSE Suite is a Windows-based software toolkit for 4D multimodal functional brain imaging

Welcome to Source Signal Imaging, developers of EMSE Suite. EMSE Suite is a Windows-based software toolkit for 4D multimodal functional brain imaging, including analysis, source estimation, image processing, and visualization. MEG/EEG and MRI/fMRI datasets from many vendors and standard formats may be combined to obtain results not available from independent analyses of the separate modalities. First introduced in 1996, and now used by clinicians and researchers worldwide, EMSE Suite has a modular architecture, rich feature set and relatively low cost. Click on the menu to the left to find information about our products, news of upcoming events, links to other sites of interest, as well as access to original publications.

EMSE 5.3 Release Candidate 3 is here
6.22.09 We have added many new features and improvements

mesh generation, literate programming, matlab; mathematica; persson

This Mathematica notebook is an effort to transcribe the MATLAB code of a 2-D mesh generation algorithm as described explicitly in Persson and Strang’s paper [1]. The goal is to make the algorithm executable in Mathematica so that its users can also experiment with the algorithm.

Since the algorithm was expressed very clearly from their original paper [1] including the MATLAB code, which is a perfect example of literate programming in MATLAB, it is pretty easy to translate the MATLAB code « literally » into Mathematica. Such translation is virtually always possible in either direction even without human interference. And such a Rosetta Stone kind of translation might be useful if one species of people coding in either MATLAB or Mathematica were to disappear, future generations would still be able to rediscover one programming language by reading its interpretation in the other one.

However, it is so tempting to present the literate programming capability of Mathematica by following its general principles; that is, (a) documentation mingles with code and both get pretty-printed; (b) shuffle code pieces for human readability. I decided to transcribe the code manually.

The original MATLAB code was documented as 8 steps (sections) in sequential order, which is easy to follow because the ideas behind the code were explained beforehand in early parts of the paper. So it is recommended that you read part 1 and 2 of the original paper. Instead of following the MATLAB code literally in 8 steps, this notebook breaks the code pieces apart and examines each of them separately.

finite element; matlab

Kwon, Y. W. and Bang, H. The Finite Element Method Using MATLAB. Boca Raton, FL: CRC Press, 1996

Mesh Generation using Matlab ; mesh generator, 2D and 3D;

Mesh Generation using Matlab

These days most of the research in the field of fluids, structures, porous media, brain computer interfacing you name it, uses numerical simulations. Reason: It is much cheaper and many times faster compared to experiments. Mesh Generation forms an integral part of numerical analysis/simulation.
Although, there are plenty of commercial softwares based on Finite Element Methods and Finite Volume Methods like COMSOL, FLEUNT, ANSYS, NUMECA and many more with exceptional Mesh/Grid Generation features (amira).
But many times its difficult to use the meshes generated by these softwares which suits to your particular simulation need.
Reason: Many of the exsiting software don’t have this feature where you can create a mesh and use it some which have such features requires you to do some complicated modifications in your code to import these meshes. There are although loads of mesh generator available some of which open source and free to download.
But, then again problem comes does these free source code suits your purpose. I encountred this problem over the last couple of months.
I am doing research in the field of Petroleum Reservoir Simulation and I need to test a lot of numerical examples on different sorts of meshes/grids in 2 and 3D. I do most of my simulation work in MATLAB, some people might argue that MATLAB is slow and all sorts of reason about other programming languages are faster like C++ and Fortran. I don’t deny that fact but on the other hand the library of existing function which matlab has is amazing and its Array handling feature and sparse code it amazing too. The only and important reason I use MATLAB is its capability to handle array operations.
{In my simulation code I have to solve at times 9 simulatneous equations in 2D and 27 equations in 3D, which maximizes use of array operations. I also frequently use MAPLE to do my algebra and other good thing about MATLAB is that I can directly import the MAPLE algebra in Array Format into MATLAB which suits my purpose}

Now comming to the meshes in MATLAB, try doing a google on ‘meshes in MATLAB’ or ‘grid generation in 2 and 3D in MATLAB’, a invested a lot of time to find some unseful source code in matlab searching on google groups etc the only useful package I found was by Per-Olof Persson titled ‘DistMesh – A Simple Mesh Generator in MATLAB’.



No doubt its an amazing piece of work but again it didnt realy suits my purpose. The reason being I needed unstructured meshes of different element types in 3D like prisms, hex, tetra and pyramids. In 2D also I needed meshes which are boundary aligned to control volume and are matching to the underlying medium.

So, What next ? I started from scratch and now I have come up with stand alone code in MATLAB which has functionality to create different kind of meshes in 2D and 3D. These are structured and Unstructured meshes, perturbed and bondary aligned too. If any one is in need of such meshes in 2 and 3D please have a look at:

Then you can drop me an email and I will get back to you and will help you and if required will also provide you with the source code if it suits your purpose.

matlab and amira; how to integrate complex calculus into Amira using MATLAB

2.14 Using MATLAB Scripts

In this tutorial you will learn how to integrate complex calculus into Amira using MATLAB (The MathWorks, Inc) by the means of the CalculusMatlab module.

In order to use the CalculusMatlab module, MATLAB 7 must be correctly installed on your computer. The CalculusMatlab module establishes a connection to the MATLAB computational engine that was registered during installation. If you did not register during installation, on the Windows command line you can enter the command:

  • matlab /regserver

The limitations of the CalculusMatlab module are listed in its documentation.

This tutorial covers the following topics:

  1. Loading and executing a MATLAB script.
  2. Lowpass filtering on images.
  3. Controlling the script with a time slider.
  4. Thresholding on a volume.

2.14.1 Lowpass Filtering on Images

In this section we will learn how to apply a lowpass filter on an Amira image using the MATLAB Fourier transformation. This example shows how to pass data and control variables from Amira to MATLAB, execute a MATLAB script, and import the data back into Amira


  • Load the lena.png image file located in subdirectory data/tutorials/matlab.
  • Choose Luminance in the Channel Conversion field as shown in Figure 34.
  • Right click on the green icon and choose CalculusMatlab from the Compute section.

A new red icon appears, the CalculusMatlab module that will try to connect to the MATLAB engine. This may take a while.

Figure 34: Loading the image
  • Load the script lowpass.m located in subdirectory data/tutorials/matlab by clicking the Read button of the File port.
  • Execute the script by clicking on the buffer button of the Execute port.
  • Connect an OrthoSlice to the filtered image result.

The module uses the MATLAB computation engine which has its own user interface.

You can easily show or hide the MATLAB console using the checkbox in the options field. The MATLAB console is very useful for debugging purposes because it allows you to access variables of the MATLAB workspace. Any variable not cleared by the MATLAB « clear » command in the script is accessible in the MATLAB workspace, even after finishing the current CalculusMatlab computation (see the CalculusMatlab documentation).

Figure 35: The CalculusMatlab module

In addition you can control scalar parameters of the script using time sliders:

  • Create a time slider (File/Create/Data/Time).
  • Connect the CalculusMatlab module to the time slider.
  • Change the line cutoff=0.05 to cutoff=t in the script (see the CalculusMatlab documentation for more information about the keyword t).
  • Click on the time slider and adjust the value that will be assigned to w. Right mouse click in the text field of the time slider and select Configure to adjust the data range of the parameters.

Figure 36: Left: original Right: lowpass filtered

Note: To handle RGBA image filtering, you must load the image with Color Field Channel Conversion and treat each channel separately in the script.

2.14.2 Thresholding on a Volume

In this section we will learn how to apply a threshold to a volume. This is done by setting a value for a threshold. If the value for the voxel is less than the threshold, the voxel value is assigned the value of zero. If it is above the threshold, it is assigned a value of 255.

  • Load the file located in subdirectory data/tutorials.
  • Right click on the green icon and choose CalculusMatlab from the Compute section.
  • Load the script threshold.m located in subdirectory data/tutorials/matlab by clicking the Read button of the File port.
  • Execute the script by clicking on the buffer button of the Execute port.

A new green icon appears, the Lattice that will hold the threshold result. Connect an OrthoSlice or a Voltex to see the result.

Note: Any variable accessed by MATLAB and pushed back into the Amira workspace will lose its voxel size information. You will need to correct the voxel size manually using the Crop Editor.

U3D and matlab file exchange; Export triangulated mesh into a pdf with a 3D interactive object.


Export triangulated mesh into a pdf with a 3D object. The matlab mesh is converted to IDTF with matlab code. The IDTF file is converted to u3d with an external binary file. The u3d file can then be embedded into a pdf with pdflatex and the movie15 package. The user can then interact with the mesh (zoom, rotate etc.) from adobe reader. The package contains demo data and example of output.

The code of the IDTF to U3D converter can be obtained at :

The toolbox has been tested on mac intel, linux and windows.

To test run the script : demo_mesh2pdf.m

MATLAB release MATLAB 7 (R14)
Other requirements The windows version requires to install MeshLab :


Blog Stats

  • 222 376 hits


Flickr Photos

janvier 2020
« Oct