Re: 2dFFT & image processing
- To: mathgroup at smc.vnet.net
- Subject: [mg101574] Re: 2dFFT & image processing
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Fri, 10 Jul 2009 06:47:11 -0400 (EDT)
- References: <h340gc$g8m$1@smc.vnet.net>
Oops, I made a small mistake here. The DC term is only in one cormer of the FFT. So the line should read: k[[1, 1]] = 1; Cheers -- Sjoerd On Jul 9, 7:51 am, "alexxx.ma... at gmail.com" <alexxx.ma... at gmail.com> wrote: > hi everybody, > I need to perform a high-pass filter on some images. > > I know I can get a high pass filter doing a convolution of the image > with a predefined kernel, but for various reasons (and my learning > too) I wanted to follow the sequence: > 1) fft > 2) cut away central region (with a smooth edge) > 3) fft again > > but, due to my ignorance, I'm unable to accomplish the process: > > given the image in a, I put: > > f = Fourier[a[[1]]]; > af = Abs@f; > Dimensions[f] > {500,500} > > and I can check the fft with Graphics[Raster[255*af/Max[af]]] > > I then create the "hole" and apply it to the fft and invert again: > > k = Table[1 - Exp[-(x^2 + y^2)/s], {x, -249, 250}, {y, -249, 250}] /. > s -> 1000.; > holed = af*k; > fholed = Abs[Fourier[holed]]; > > since the reconstructed image Graphics[Raster[255*fholed/Max[fholed]]] > is strongly fuzzed, whichever value I choose for the parameter s > above, I wanted to ask you if I completely misunderstood the process! > > thank you, > > alessandro