File Exchange

image thumbnail

Toolbox Wavelets

version 1.3 (3.54 MB) by

Wavelet transform and coding functions, including other more exotic transforms (laplacian, steerable



View License

toolbox_wavelets - wavelets related functions.

Orthogonal wavelet transform:
- perform_wavelet_transform - WAVELAB implementation of the wavelet transform.
Wavelet transform using lifting implementation (symmetric boundary condition):
- perform_lifting_transform / perform_lifting_transform_slow - 1D wavelet transform via lifting (general interface).
- perform_lifting_transform_byname - string based interface.
- perform_79_transform - biorthogonal 7/9 1D wavelet transform
- perform_wavelet_transform_isotropic - multidimensional isotropic (i.e. classical) wavelet transform.
- perform_wavelet_transform_hyperbolic - multidimensional hyperbolic (i.e. fully tensorial) wavelet transform.
Pyramid transform:
- perform_pyramid_transform - Laplacian-like pyramidal transform.
- perform_pyramid_transform_do - Minh Do Pyramidal transform (much better).
- perform_pyramid_transform_simoncelli - Steerable pyramid implementation of the Laplacian.
- perform_pyramid_transform_ti - translation-invariance pyramid (difference of Gaussian filterings).
Other transforms:
- perform_haar_transform - a simple but very fast 1D haar transform.
- perform_atrou_transform - compute the "a trou" wavelet transform, i.e. without subsampling (try to use either RWT or CWP2 when available).
- perform_cpx_dualtree_transform - complex dual tree transform.
- perform_steerable_transform - Steerable pyramid transform.
Compression and coding function:
- perform_jp2k_degradation - Perform JPEG2000 coding and decoding of wavelet coefficients.
- perform_spiht_coding - Perform SPIHT coding (slow) of the wavelet coefficients.
- perform_wavelet_arithmetic_coding - Perform simple arithmetic coding of the wavelet coefficients.
- evaluate_nbr_bits_wavelets - compute the entropy of a wavelet transform.
Helpers functions:
- compute_quadrant_selection - compute the indices for selecting coefficients at a given scale and orientation.
- reorder_coefs - switch from inplace (results of lifting transform) to classical ordering.
- plot_wavelet - plot wavelet using Mallat's ordering.
- convert_wavelets2list - extract each sub-image.
Test scripts: see test_???.m files.

Installation note : you need to add the content of toolbox/ in your Matlab path.

Copyright (c) 2006 Gabriel Peyré

Comments and Ratings (36)


Jurgen (view profile)

This require litekmeans function, where can I find it?

Binh Nguyen

Hi everyone

I just download toolbox_wavelets and try to use in MatLab 2015b. I add toolbox into Matlab path and run some files test_...m in Tests folder, but it does not run. Is there anyone know to compile it, please show me? Thanks,

The implementation of quincuncx wavelets is impressive. I would like to know if there is any information regarding the implementation of quincuncx wavelets for 3D images?


Pablo (view profile)

I can't compile the toolbox functions for the a trou algorithm,the folder 'jp2k/src/ does not exist in the path.
It seems that some files are missing..

The implementation of quincuncx wavelets is impressive. I would like to know if there is any information regarding the implementation of quincuncx wavelets for 3D images available?


Sana (view profile)

where could i find the function wevedec2 please? in which toolbox?


Could you compile the files for a linux 64?
Thanks for the toolbox

How I can perform multiresolutiom analys a 3D mesh, using this toolbox?


Rasha (view profile)


huda noor

hi i have error in compile this is the msg
??? Error using ==> mex at 208
Unable to complete successfully.

Error in ==> compile_mex at 38

Alex Jansen

When I trie to compile the file, I get an error even after commenting line 8 to 58.

Can somebody help me to compile the file

This is the error:
>> compile_mex
---> Compiling wavelet transforms mex files.

C:\PROGRAM FILES\MATLAB704\BIN\WIN32\MEX.PL: Error: 'mex/perform_79_transform.cpp' not found.

??? Error using ==> mex
Unable to complete successfully

Error in ==> compile_mex at 62
mex mex/perform_79_transform.cpp

Raymond Cheng

Thanks for your nice toolbox.


Thanks a lot for this toolbox. Is it possible to access the details (D) in a translation-invariant wavelet transform (TIWT)?
So that, for example, for a TIWT of depth 3:
signal = D1 + D2 + D3 + A3?

I had a look at the code but could not figure out how to do it.

Thanks a lot!


Thomas Clark

Thomas Clark (view profile)

In addition to my previous comment; I've noticed that quite a lot of the code is just copied straight from the wavelab toolbox; but with different function wrappers added.

... so I'm afraid I dropped my rating a bit, as wavelab is reasonably easy to use; their code being easier to understand (less use of things like eval() ), and and produces way less M-Lint errors.

The functional structure is also easier to understand in wavelab; as there are many overloaded functions of the same name in this toolbox.

Thomas Clark

Thomas Clark (view profile)

Really versatile and quite comprehensive wavelet toolbox. People should use this before deciding whether they need to spend out on TMW's own Wavelet toolbox.

Beginners may wish to know that they need to compile the MEX files before using the toolbox - add the toolbox to Matlab's search path, navigate to the toolbox's main directory, and type
>> compile_mex
into the command line.

There are a couple of issues with the installation; until Gabriel updates the ZIP file, the Atrou source files and the JPEG2000 source files are missing. To get compile_mex.m to work, then, you'll need to comment out lines 8 through to 58.

The help files are pretty good (certainly better than those for the other wavelet toolboxes here on the FEX) although it would be nice to have example usages for each of the functions, and perhaps one or two lines on suggested application for the different types of transform.

Thanks Gabriel :)


max (view profile)

test for wavelet based denoising
asks for
MWt = keep_above(MW, T);

Nidhi Goel

i am unable to find the matlab function 'perform_arithmetic_coding'. can you help me out ?

Divya V

Where is the perform_shannon_estimation function?

joy Pan

I downloaded it but don't know how to use it. When I run the function perform_wavelet_transform, an error message like:"Undefined function or variable "dps"."
occurs. How can I handle it?

hoang phong


Colleen Kenney

I am unable to compile the toolbox. When I attempt to, I get the error message C:\PROGRA~1\MATLAB\R2007B\BIN\MEX.PL: Error: 'jp2k/jp2_codec.c' not found. How do I fix this?

Navin Kumar


Failing to use Atrou algo.I am getting problem in accessing dll files. Will u help me?

Andrea Gentili

Tried only a bit of it, but it's great content; sorry for the superficial comment, but I've had the time for basic trials only.

Chrysi Papalazarou

I had problems both with the Simoncelli as well as with this toolbox in the Fourier domain implementation of the Steerable Pyramid. With simple uint8 images, the resulting pyramid consists entirely of NaNs. The problem seems to be located in the PointOp function. Any suggestions on how to solve this?
Thank you,

Sisnarf Santos

This is similar to the matLabPyrTools of Simoncelli I tried to classify images as CG or Photo, based on statistics, you I need the support vector machine (SVM) and the linear discriminant analysis (LDA) code in order to use in it does not work.

Francis Raymond Santos

how do we install this to matlab?

Julio Cesar Garcia Alvarez

I am implementing JSCC (Joint Source-Channel Coding) for image and medical transmission. I wish to know if this is a interesting idea for you, and I could implement on this toolbox.


sandeep hinge

Failing to use Atrou algo.I am getting problem in accessing dll files.
Will u help me?

hafid zouihri

hicham aachich

Alison Moraes

Dear Mr Peyré, its missing the file fwt_pyramid.m, but the toolbox is excellent and useful

Sheraz Khan


tree prayitno

Christophe goupil



Update of Licence



Added html help file.

Added TI quincunx transform.

Add GPL license

Added Portilla BLS-GSM denoising algorithm. Correct problem with steerable transform.

Fix some bugs.

Lots of new things (jpeg2000 and spiht encoding, bug fixes, etc).

The toolbox is now independant of wavelab.

Added mex files for lifting transform, changed the naming conventions.

Added Laplacian pyramid transform.

Added plot_wavelet.

Added screenshot.

MATLAB Release
MATLAB 7 (R14)

Inspired: Wavelet Based Image Segmentation

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video