I have been working on a project recently involving some image processing. The application takes many images of the same thing and attempts to sharpen the image. There are many ways to do this depending on what details of the image are important. One can use simple image averaging (low-pass), speckle imaging and wavelet filters, just to mention a few. This was my first exposure to wavelets and found them to be very interesting. So I thought I'd share a bit here. For those of you more mathematically savvy than me, I'll apologize now. ;) Wavelet transforms are similar in nature to Fourier transforms in that they can take a signal and represent it as a set of coefficients. The primary difference being that wavelets are localized in scale and time where the Fourier transform is only localized in frequency. For those of you that remember Fourier transforms from Calculus, this should be a good indication as to where we are going. There are many kinds of wavelets. One can choose between smooth wavelets, compactly supported wavelets, wavelets with simple mathematical expressions, wavelets with simple associated filters, etc. So how do they work? Lets start by looking at the Haar wavelet. The Haar wavelet is a simple step function. (follow the link to take a look) If we scale (dilate) and move (translate) this simple function we can use a series of them to represent a signal. (pause) OK...so how do I use it to sharpen an image? Well if we take an image, represent it with a set of wavelet coefficients then take another image and do the same, then another and another and so on, what will we see? We will see some of the coefficients hover around a value while others may change wildly. The values with the most constant values will correspond to the most salient features. These features give us the closest representation to the real object in the image. Here's a great example of a C# implementation of a dualtree complex wavelet transform (the one I'm actually using)
Conclusion
I know I've glossed over a lot and over simplified most of it, but I wanted to share wavelets with those of you that have never heard of them. They're very cool!