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

5 次查看(过去 30 天)
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 个评论
Iron1759
Iron1759 2021-2-2
编辑:Iron1759 2021-2-2
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...

请先登录,再进行评论。

回答(1 个)

KALYAN ACHARJYA
KALYAN ACHARJYA 2021-1-31
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 个评论
Iron1759
Iron1759 2021-1-31
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?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by