Re: 2-D Fourier Transform?

• To: mathgroup at smc.vnet.net
• Subject: [mg113766] Re: 2-D Fourier Transform?
• From: "Nasser M. Abbasi" <nma at 12000.org>
• Date: Thu, 11 Nov 2010 06:10:14 -0500 (EST)

```On 11/10/2010 9:41 AM, Nasser M. Abbasi wrote:

>
> ------ 2D spectrum of image ------------------------------
> img=Import["ExampleData/lena.tif"];
> ImageDimensions[img] (*look at image*)
>
> ImageChannels[img]  (*see how many channels*)
>
> data=ImageData[img];  (*get data*)
> {nRow,nCol,nChannel}=Dimensions[data]
>
> Map[Image[data[[All,All,#]]]&,Range[1,nChannel]](*look at each channel*)
>
> d=data[[All,All,2]]; (*get channel 2*)
> Image[d,ImageSize->400]
>
> (*center Image first*)
> indx=Flatten[Outer[List,Range[1,nRow],Range[1,nCol]],1];
> Map[(d[[  #[[1]],#[[2]] ]]=(-1)^(#[[1]]+#[[2]])*d[[#[[1]],#[[2]] ]])&,indx];
>
> (*make FFT and look at spectrum and phase*)
> fw= Fourier[d,FourierParameters->{1,1}];
>
> fudgeFactor=100; (*adjust for better viewing as needed*)
>
> ArrayPlot[Abs@(fudgeFactor * Log[1+fw]),PlotLabel->"Magnitude spectrum",ImageSize->400]
> ArrayPlot[Arg[fw],PlotLabel->"Phase spectrum",ImageSize->400]
> -----------------------------------------
>
> see my howto note #95
> http://12000.org/my_notes/mma_matlab_control/KERNEL/e95/mma/index.htm
>
> --Nasser

Opps, In the above, I took the Abs of the FFT outside the log.

ArrayPlot[Abs@(fudgeFactor * Log[1+fw]),PlotLabel->"Magnitude spectrum",ImageSize->400]

It should be

ArrayPlot[(fudgeFactor * Log[1+Abs@fw]),PlotLabel->"Magnitude spectrum",ImageSize->400]

The fudgefactor is something one changes to get a clearer picture of the spectrum. There is no magic formula for it that I know of.

--Nasser

```

• Prev by Date: Re: 2-D Fourier Transform?
• Next by Date: Re: Find max of a Find root function
• Previous by thread: Re: 2-D Fourier Transform?
• Next by thread: Re: 2-D Fourier Transform?