Is my code correct?

2 views (last 30 days)
Hind Aljallaf
Hind Aljallaf on 8 Dec 2022
Commented: Walter Roberson on 8 Dec 2022
Is my code correct?
Get the Fourier transform of image3 using the fft2() command.
If the result does not seem to be interesting, center the spectrum of the result using the fftshift() command.
A=fft2(img3)
X=fftshift(img3)
image3=abs(A)
plot(image3)
imshow(image3,[])
image32=abs(X)
plot(image32)
imshow(image32,[])

Accepted Answer

Walter Roberson
Walter Roberson on 8 Dec 2022
You should rarely plot an image. plot() is for creating line plots.
Your code will produce plots with one line for each column in A or X. It is not forbidden ... it just is seldom a good idea. Too difficult to make any sense out of the resulting plot.
  5 Comments
Hind Aljallaf
Hind Aljallaf on 8 Dec 2022
i dont understand what you are saying
Walter Roberson
Walter Roberson on 8 Dec 2022
Steven is indicating that he does not see a statement from you of what you are trying to achieve, and so cannot make a recommendation as to whether your code is acceptable or should be changed. And I replied that it looks to me as if your lines
Get the Fourier transform of image3 using the fft2() command.
If the result does not seem to be interesting, center the spectrum of the result using the fftshift() command.
are the statement of what you want to do.
I find your code a bit awkward but it looks like it would work.
Hint:
a = randi([-9 9], 1,5) + 1i*randi([-9 9],1,5);
mat2str(a)
ans = '[4+8i -4-8i -2+8i 7+3i -4-1i]'
out1 = fftshift(abs(a));
out2 = abs(fftshift(a));
mat2str(out1)
ans = '[7.61577310586391 4.12310562561766 8.94427190999916 8.94427190999916 8.24621125123532]'
mat2str(out2)
ans = '[7.61577310586391 4.12310562561766 8.94427190999916 8.94427190999916 8.24621125123532]'
out1 == out2
ans = 1×5 logical array
1 1 1 1 1

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!