Re: 2-D Fourier Transform?
- To: mathgroup at smc.vnet.net
- Subject: [mg113770] Re: 2-D Fourier Transform?
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Thu, 11 Nov 2010 06:10:59 -0500 (EST)
- References: <ibdvnp$8tk$1@smc.vnet.net>
- Reply-to: nma at 12000.org
On 11/10/2010 3:30 AM, hadi motamedi wrote: > Dear All > Can you please let me know how can I obtain 2-D Fourier transform of a > 2-D signal say an saved image ? > Thank you > There might be a shorter way in the digital image processing functions in version 7 as many new ones where added. But this is one way to do this. If you find any errors pls let me know: ------ 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