== fft2d-highpass == Applies a highpass filter to a BMP image, using a [http://en.wikipedia.org/wiki/Fast_fourier_transform 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 http://code.haskell.org/repa/repa-stable/repa-algorithms/Data/Array/Repa/Algorithms/FFT.hs The wrapper is at http://code.haskell.org/repa/repa-stable/repa-examples/FFT/src/HighPass/Main.hs === Test Data === [http://en.wikipedia.org/wiki/Lenna http://en.wikipedia.org/wiki/Lenna] is a standard test image. || lena.bmp || lena-high2.bmp || || [[Image(Examples/Fft2dHighpass:lena-thumb.jpg)]] || [[Image(WikiStart:lena-high2-thumb.jpg)]] || || [http://code.haskell.org/repa/wiki/images/lena.bmp full size] || [http://code.haskell.org/repa/wiki/images/lena-high2.bmp full size] || === Runtime === 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 || 24.81 || || 2 || 13.37 || || 3 || 10.4 || || 4 || 7.79 || || 5 || 8.24 || || 6 || 7.25 || || 7 || 6.87 || || 8 || 6.58 ||