Graphic STI
logo EPFL
Text EPFL
english only
Biomedical Imaging Group
Fractional Splines Wavelets
BIG > Demo > Fractional Splines Wavelets
CONTENTS

Home Page

News

Events

Seminars

People

Research

Publications

Tutorials and Reviews

Demos

Fractional Splines

Java code

We provide two wavelet plug-ins for the public-domain image analysis software ImageJ.

bullet Fractional Wavelet Transform (2D only)
Explore the fascinating world of fractional wavelets. You can adjust and visualize the basis functions and apply the wavelet transform to your images. See the user manual.

An applet version of this software that you may run on your browser is also available.

bullet Fractional Wavelet Module (2D, 3D or 2D + time)

Experiment with the fractional spline wavelet transform in 2D or 3D and perform simple processing in the transform domain (denoising, filtering, or user-specified). See the user manual.

Download

  User Distribution   Developper Distribution  
  Fractional_Splines_Wavelets.jar   FractionalSplinesWavelets.zip  
  Download the JAR file and put it into the plugins directory of ImageJ.   The ZIP archive file contains the Java class files and a example of macro. After having extracted the archive file, you should put the "Watershed" directory into the plugins directory of ImageJ. To call the watershed routines read the FSW_Demo.txt.  

Installation

First, you must have a working copy of ImageJ which you can get from here. ImageJ runs on several plateforms: Unix, Linux, Windows, Mac OS 9 and Mac OS X. Next, you place the unzipped version of our software in the "plugins" folder of ImageJ. The whole process should not take more than a couple of minutes.

Important note

You are free to use this software for research purposes, but you should not redistribute it without our consent. In addition, we expect you to include adequate citations and acknowledgments whenever you present or publish results that are based on it.

Authors

Thierry Blu, Dimitri Van De Ville, Daniel Sage, and Michael Unser

References:

M. Unser, T. Blu, "Fractional Splines and Wavelets," SIAM Review, vol. 42, no. 1, pp. 43-67, March 2000.

T. Blu, M. Unser, "The Fractional Spline Wavelet Transform: Definition and Implementation," Proceedings of the Twenty-Fifth IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP'00), Istanbul, Turkey, June 5-9, 2000, vol. I, pp. 512-515.

T. Blu, M. Unser, "A Complete Family of Scaling Functions: The (α, τ)-Fractional Splines," Proceedings of the Twenty-Eighth IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP'03), Hong Kong SAR, People's Republic of China, April 6-10, 2003, in press.

 

Fractional Wavelet Transform

Performs a non-redundant, separable fractional wavelet transform in 2D. The wavelet basis is specified within the family of fractional splines, which are the only wavelets to date that are tunable in a continuous fashion. You can adjust and visualize the basis functions and apply the wavelet transform to your images.

Open an image

The Wavelet Transform plug-in for ImageJ computes the 2D wavelet transform of an image.

  • Open an image or image sequence using the standard menu of ImageJ: File->Open...
  • Click on the image frame to put it in focus and then start the plug-in by selecting: Plugins->Fractional Spline Wavelet->Wavelet Transform
  • Once the plug-in is started, all operations are done on the selected image or image sequence

Functioning of the Wavelet Transform plug-in

  • The plug-in operates in two modes:
    1. Analysis: computes the wavelet transform of an image
    2. Synthesis: reconstructs the image from its wavelet transform
  • Any processing using ImageJ can be done on the wavelet coefficients before reconstruction since the plug-in window is not modal.

Step 1 - Discrete Wavelet Transform: Analysis side

The complete family of (bi)-orthogonal spline wavelets with fractional degree (α) and arbitrary shift (τ) is available in this plug-in

  • Filter: orthonormal (same analysis and synthesis filters), biorthogonal (B-spline analysis or synthesis and dual-spline synthesis or analysis);
  • Iterations: the number or scales;
  • Degree: the fractional degree of the spline. The Haar transform is obtained with degree=0.0 and shift=0.50;
  • Shift: the shift of the spline function (0.0 results into symmetrical filters).

For more information on these transform parameters, refer to wavelet properties.

The scaling function or the wavelet are displayed in the central part of the plug-in window. In this way, the user can visualize the effects of changing the transform parameters.

When the image dimensions are not powers of two, an "Image size control" window allows you to crop or extend the original image dimensions. If the size is not a power of two, the algorithm still works but the processing will be very slow.

Optionally - Processing

You can use any ImageJ manipulations to process the wavelet coefficients

Step 2 - Inverse Discrete Wavelet Transform: Synthesis side

The final step reconstructs the (processed) image or image sequence using the same settings as the analysis side

 

Fractional Wavelet Module (2D or 3D)

Experiment with the fractional spline wavelet transform in 2D or 3D and perform simple processing in the transform domain (denoising, filtering, or user-specified).

Open an image or image sequence

The Wavelet Module plug-in for ImageJ works both with images 2D and with image stacks.

  • Open an image or image sequence using the standard menu of ImageJ: File->Open...
  • Click on the image frame to put it in focus and then start the plug-in by selecting: Plugins->Fractional Spline Wavelet->Wavelet Module
  • Once, the plug-in is started and all operations will be done on the image or image sequence that was last in focus

Functioning of the Wavelet Module 3D plug-in

  • The plug-in operates in three steps:
    1. Analysis: computes the forward discrete wavelet transform for orthogonal and bi-orthogonal spline wavelets
    2. Processing: performs an operation in the wavelet domain
    3. Synthesis: computes the inverse discrete wavelet transform
  • For each step, one can choose to produce an intermediate output by enabling the checkbox "Output"
  • The steps can be done all at once by clicking "Run all steps", or "Run step : xxx"

When the image dimensions are not powers of two, an "Image size control" window allows you to crop or extend the original image dimensions. If the size is not a power of two, the algorithm still works but the processing will be very slow.

Step 1 - Discrete Wavelet Transform: Analysis side

The complete family of (bi)-orthogonal spline wavelets with fractional degree (α) and arbitrary shift (τ) is available in this plug-in

  • Filter: orthonormal (filters for analysis and synthesis are equal), biorthogonal (B-spline at the analysis or the synthesis side, the dual the other way around);
  • Iterations: can be selected independently for each of the three dimensions; if one selects 0, no transform in this dimension will be done;
  • Degree: the fractional degree of the spline can be selected, for Haar wavelets select degree 0.0 and shift 0.50;
  • Shift: the shift of the spline function (0.0 results into symmetrical filters).

For more information on these transform parameters, refer to wavelet properties.

To explore the family of wavelets and scaling functions available, we refer to the Wavelet Transform plug-in.

Step 2 - Processing

To illustrate the potential of wavelet transform domain processing, we have included several versions of popular algorithms:

  • Bypass: no processing
  • Hard threshold: puts coefficients whose absolute value is below the "Threshold" to zero
  • Soft threshold: same as "Hard threshold", but compensates the offset at the threshold position
  • Enhancement: enhances the lowest subband by "Factor"
  • Rescale: rescales the coefficients of each subband to make them visually easier to interpret

Step 3 - Inverse Discrete Wavelet Transform: Synthesis side

The final step reconstructs the (processed) image or image sequence using the same settings as the analysis side

Adding functionality to the Wavelet Module

You can program your own processing algorithm (that will be executed when you select "Your processing here" in the dialog box) by modifying and compiling the source file CoefProcessing.java. More details can be found in this file.