How to take an FFT/IFFT from an image according to logical matrix?

9 views (last 30 days)
Hello,
I'm having some difficulties of both taking a fourier transform from where ROI shape was drawn (i.e. logical matrix where values equal one), and then the inverse function according to same protocol, i.e. after applying mask (using CreateMask) and getting a logical matrix.
Note that I'm going to use several circle masks, which makes it impossible to simply crop the image and then apply the transformation.
Any ideas?
Thanks.
  1 Comment
Iron1759
Iron1759 on 2 Feb 2021
Edited: Iron1759 on 2 Feb 2021
A thought that I had is to re-build a subset of the original image according to the mask/s applied before taking FFT, it should not be a problem.
However, what shall I do when I want to apply the inverse function with a few masks on 2D FFT?
Both the FFT & IFFT are such important procedures that it's hard to imagine that applying masks couldn't be done easily...

Sign in to comment.

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 31 Jan 2021
You may do the FFT or IFFT of whole image. Later apply the mask (logical Matrix) on resultant image. Let say "result" is the resultant image after FFT or IFFT
result(mask)=0;
In case on RGB Image, do the following before apply the logical matrix(mask) on the resultant image.
cat(3,mask,mask,mask)
  2 Comments
Iron1759
Iron1759 on 31 Jan 2021
Hi Kalyan,
I suppose that what you have done is to make all the pixles outside the mask from the original image to be zero.
However, I think that you can't simply take FFT from the whole image and THEN apply the mask you want, because you get redundant signals, or I missed your point?

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!