1
$\begingroup$

I have the following code

Image[img, ImageSize -> 300]
data = ImageData[img];
fdct = Fourier[data]
tdata = InverseFourier[fdct];
Image[tdata]

but it seems to fail when doing the inverseFourier function. The error I get is:

Image::imgarray: The specified argument {{{1. -2.0236*10^-17 I,1. -9.36654*10^-17 I,1. -3.45228*10^-17 I},<<49>>,<<330>>},{<<1>>},<<47>>,{{1. +4.61893*10^-17 I,<<19>> +<<24>> I,1. +7.44929*10^-17 I},<<49>>,<<330>>},<<330>>} should be an array of rank 2 or 3 with machine-sized numbers. >>

I'm actually not sure what I'm doing wrong as I've checked the "discrete fourier transforms" (http://reference.wolfram.com/mathematica/tutorial/FourierTransforms.html) and the output of fourier was just used in the inverseFourier to get the inverse...

Any ideas what is wrong here?

$\endgroup$
  • $\begingroup$ Seems like you're right... Chopping values of solved the issue. $\endgroup$ – markovuksanovic Jul 27 '13 at 7:26
2
$\begingroup$

tdata acquired small imaginary parts. Try

Image[Chop@tdata]

instead.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.