Version 9 (modified by 15 years ago) (diff) | ,
---|
fft2d-highpass
Applies a highpass filter to a BMP image, using a Fast Fourier Transform. The first argument is the lower cutoff frequency.
Each of the RGB channels is converted to the frequency domain, the lower frequencies are set to zero, then the channels are converted back to the image domain.
repa-fft2d-highpass 2 lena.bmp lena-high2.bmp
Code
The main algorithm is at FFT.hs
The wrapper is at Main.hs
Test Data
http://en.wikipedia.org/wiki/Lenna is a standard test image.
lena.bmp | lena-high2.bmp |
full size | full size |
Runtime
Head version. Compiled with GHC 6.13.20100309. 512x512 image.
Running on a Intel i7 iMac. 2.8Ghz, 4 cores x 2 threads/core. 256k L1, 8MB L2, 8GB main memory.
Times stated include IO.
Threads | Time(s) |
1 | 6.93 |
2 | 4.07 |
3 | 3.42 |
4 | 3.13 |
5 | 3.15 |
6 | 3.08 |
7 | 3.08 |
8 | 3.39 |
Comparisons
Version | Time(s) | Source |
Using Data.Vector.Unboxed | 2.88 | FFT.hs |
Using Jones's inplace C implementation | 0.24 | Jones.c |
Using FFTW on Estimate mode | 0.09 | FFTW.c |
Attachments (2)
- lena-thumb.jpg (6.6 KB) - added by 15 years ago.
- lena-high2-thumb.jpg (5.6 KB) - added by 15 years ago.
Download all attachments as: .zip