File Exchange

image thumbnail

Toolbox Wavelets

version (3.54 MB) by Gabriel Peyre
Wavelet transform and coding functions, including other more exotic transforms (laplacian, steerable


Updated 27 Jun 2009

View Version History

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é

Cite As

Gabriel Peyre (2021). Toolbox Wavelets (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (42)

Hazwani Mohmad Ramli

Hi, I try run this code but stuck at line %Quincunx decomposition. The system cannot read coding after this line. what should I do?

Imam Santoso

Sena Yengec

Undefined function 'getoptions' for
input arguments of type 'struct'.

Error in perform_wavelet_transform
(line 59)
wavelet_type = getoptions(options,
'wavelet_type', 'biorthogonal');
how to solve it?


hi,To add path, show me the error ,"Warning: Name is nonexistent or not a directory: toolbox ". how i solve it?


Undefined function or variable 'cwpt2_btree'.
This error apears when I used test_atrou file.
Any one can help about it.

Chenqi Guo

I am confused about the load_image function. For this function, it needs three parameters: load_image(type, n, options). But in some other functions which use this load_image function, they did not give all of these three parameters. For example, M = load_image(name,n) in test_steerable.m. Why is that?


This require litekmeans function, where can I find it?

Alexandre Carrança

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,

Sai Sandeep padala

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?


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..

Sai Sandeep padala

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?


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


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

Pham Ngoc Thanh

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



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.

Amardeep Singh


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

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

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 :)


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

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Wavelet Based Image Segmentation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!