Hypercomplex Wavelets
m (→Introduction) |
m (→Wavelet Editor) |
||
Line 18: | Line 18: | ||
=Wavelet Editor= | =Wavelet Editor= | ||
[[Image:Waveletedit.png|thumb|240px|right|Wavelet editor]] | [[Image:Waveletedit.png|thumb|240px|right|Wavelet editor]] | ||
− | An editor for visualising linear combinations of wavelets was implemented. The code requires [http://rubyforge.org/projects/korundum/ qt4-qtruby] and [[HornetsEye]]. See [http://www.wedesoft.demon.co.uk/hornetseye-api/files/Installation-txt.html here] for more information. Here is the source code: | + | An editor for visualising linear combinations of wavelets was implemented. |
+ | <!-- The code requires [http://rubyforge.org/projects/korundum/ qt4-qtruby] and [[HornetsEye]]. See [http://www.wedesoft.demon.co.uk/hornetseye-api/files/Installation-txt.html here] for more information. Here is the source code: | ||
* Ruby program: [http://vision.eng.shu.ac.uk/jan/waveletEdit.rb waveletEdit.rb] | * Ruby program: [http://vision.eng.shu.ac.uk/jan/waveletEdit.rb waveletEdit.rb] | ||
* Qt4 design: [http://vision.eng.shu.ac.uk/jan/waveletEdit.ui waveletEdit.ui] | * Qt4 design: [http://vision.eng.shu.ac.uk/jan/waveletEdit.ui waveletEdit.ui] | ||
Line 24: | Line 25: | ||
<pre> | <pre> | ||
rbuic4 waveletEdit.ui > ui_waveletEdit.rb | rbuic4 waveletEdit.ui > ui_waveletEdit.rb | ||
− | </pre> | + | </pre> --> |
[[Image:working.gif]] Under construction ... | [[Image:working.gif]] Under construction ... |
Revision as of 22:16, 28 September 2007
Contents |
Introduction
Complex wavelets are superior to real-valued wavelets because they are nearly shift-invariant. Complex wavelets yield amplitude-phase information in a similar way as the Fourier transform does. In contrast to the Fourier transform, wavelets allow to analyse the signal locally and thus can be applied to signals with a non-stationary statistic (such as images of a natural scene). In the same way as a one-dimensional signal requires complex numbers to represent the local structure of the signal, two-dimensional signals require hypercomplex numbers. Kingsbury has developed the Dual-Tree Hypercomplex Wavelet Transform (DHWT) which allows to recursively decompose a two-dimensional image.
Implementation
The implementation makes use of Selesnick's Hilbert transform pairs of wavelet bases. The implementation also requires the Ruby-extension HornetsEye which offers fast operations for n-dimensional arrays and hypercomplex numbers as element-types.
The source file can be downloaded here: kingsbury.rb
Wavelet Editor
An editor for visualising linear combinations of wavelets was implemented.