How to synthetic face images and to reconstruct them only from low-frequency Fourier features ?

Hello everybody I need to reconstruct face images by using only low-frequency Fourier coefficients. So how to keep only the low frequency part . this code keep fourier coeffecients from all bands:
imageA = imread('greekchurch','jpg');
fftA = fft2(double(imageA));
figure, imshow(abs(fftshift(fftA)),[24 100000]), colormap gray
title('Image A FFT2 Magnitude')
figure, imshow(angle(fftshift(fftA)),[-pi pi]), colormap gray
title('Image A FFT2 Phase')
fftC = abs(fftA).*exp(i*angle(fftB));
imageC = ifft2(fftC);
How to preserve only low-frequency Fourier coefficients . Thanks for your attention

 Accepted Answer

6 Comments

Please can you explain to me how to procede ,and what's the relation between low frequency and the eigenface ?
I'd start with a view of eigen values so you know what that is. Then I'd do a web search on eigen faces. I don't work in that area so I don't know where the best tutorials might be located. But basically it's a set of images from low blurry images to images of increasingly higher spatial frequencies. By taking a sum of those images, with different weights applied to each image, you can build up any face. Similar to a Taylor series or Fourier Transform.
eigenfaces are used to solve the curse of dimensionality in image processing by encoding the image in a lower dimension subspace it's not what i want to do. Discrete fourier Transform has the same function as eigenface in term of dimensionality reduction using another type of reduction mathematical transformation. Given an input image, different bands of frequency play different roles. "It is known that generally low frequencies reflect the holistic attributes of the input image. This can be illustrated intuitively by observing the effects of inverse transform with only the frequency band of interest,using only the low frequency bands (about 30% of all the energy)"
That's how I interpreted your comment "reconstruct face images by using only low-frequency Fourier coefficients". If that's not right, then tell me exactly what kind of "low-frequency Fourier coefficients" are you starting with. Because I don't know. Basically the coefficients ARE the Fourier transform. Each point in the Fourier Transform is the weight of a sine or cosine. If you sum up a bunch of sines and cosines weighted by the value of the Fourier Transform, you'll recover your image. This is what the inverse Fourier transform does. Of course if you wanted to, you could zero out certain frequencies to return an image that looks different than your input image, for example blurred or sharpened. So if you want better suggestions you're going to have to provide better information, particulary regarding what form the "low-frequency Fourier coefficients" you're starting with are in.
Hello the problem is as follow :Given an image of size 64*80 , in order to apply the fastFourier transform (FFT) algorithm, image must be extended to 128 128 pixels. Thus, the full bandwidth available is 64 due to the symmetry of the Fourier coefficients. As explained above, i need only the low-frequency Fourier coefficients. In the experiments, i must select the first 16*16 FFT coefficients, which cover about 50% of all the energy, to form the global fourier feature vector (GFFV).how to extract the the first 16*16 FFT coefficients.Can you give me a code .
If you haven't used fftshift() then the low frequencies will be in the 4 corners, so just zero out everything except for 8 by 8 blocks in the corners.

Sign in to comment.

More Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!