MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

FFT of a noisy image with weak periodic information

  • To: mathgroup at smc.vnet.net
  • Subject: [mg126764] FFT of a noisy image with weak periodic information
  • From: Dave Martin <miltydcm at gmail.com>
  • Date: Wed, 6 Jun 2012 04:51:10 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

I'm trying to accomplish what should be a relatively simple frequency
domain filtering of a noisy input image with with some weak, periodic
signals (a low dose transmission electron microscope image of some
organic crystals).   Using the commands below, I've been able to input
the image (x), convert it to data (xi), and calculate the FFT (fx).
Now what I want to do is to set the FFT to zero for all values below
some threshold, and then inverse transform back to a filtered image.
My stumbling block is a simple means to set the values of the array fx
to zero below some threshold, before I perform InverseFourier.

x=Import["data.tif"]   (*import the file as an image*)
xi=ImageData[x];   (*convert image to array data*)
x1=xi[[All,All,1]];    (*extract one of the three color channels from
the RGB image*)
fx=Fourier[x1];       (*calculate the FFT of x1*)

Some other commands I've found useful...

pfx=fx*Conjugate[fx];  (*calculate power spectrum = fx^2*)
n=Length[pfx]             (*determine size of arrays*)
pxr=RotateRight[pfx, {n/2,n/2}];   (*put origin in center of PS
image*)
pi = Image[pxr]           (*convert PS to image for display*)

Inverse transforming...

rx=Chop[InverseFourier[fx]];  (*convert fx back to a real space data
set rx*)
ri=Image[rx]                         (*convert rx to an image ri for
display*)




  • Prev by Date: Re: Memory Blowup Issues
  • Next by Date: Re: Stop on message?
  • Previous by thread: Does Mathematica embed non-Mathematica fonts in exported EPS files?
  • Next by thread: Re: FFT of a noisy image with weak periodic information