This is Java class which generates transforms using non-standard Haar wavelet basis functions on two dimensional data. It operates on byte valued data using a fast integer arithmetic based implementation and is primarily designed for image processing, though it could prove useful in other domains.
I have released the source code into the public domain: HaarFilter.java
//create the filtering object
HaarFilter haar = new HaarFilter(256);
//adjust its parameters as desired
haar.setFractionalBits(0);
//obtain some 2D byte data
byte[] data = new byte[256 * 256];
...
//filter the data using Haar wavelets
int[] filter = haar.filter(data, null);
//perhaps do some processing with the filter
...
//convert the filter back into a data array
haar.invert(filter, data);
For more information see the comments in the supplied code.
The applet below allows you to experiment by degrading a filter generated from the obligatory image of lenna, and seeing the effect this has the consequently reconstructed data.