简体   繁体   中英

how to apply Fourier Transform on image using matlab

I have a problem, which is how it is applied Fourier Transform (ftt) on the image (or how enhance image used Fourier Transform) when i run my program

  • the input was fingerprint image
  • the output was white image
  • the problem is the output should be fingerprint image after enhance used Fourier Transform not white image

F=fft2( I );
factor=abs(F).^F;
block =ifft2(factor); 
R= fftshift(block);

I hope finding some help

The exponentiation of F.^F seems to be a big number, so it is above the upper value and matlab slice it to be the upper value.

% Calculating fft2
fft2im = fft2(double(im));
% Taking the spectrum with log scaling
fft2im = log(1+(abs(fft2im)));
% Putting DC in the middle:
spectrum = fftshift(fft2im);
% finding maximum in spectrum:
maximum = max(max(spectrum));
% scaling maximum to 255 and minimum to 0:
spectrum = 255*spectrum/maximum;
% Casting to uint8 to be able to display:
spectrum =  uint8(spectrum);
imshow(spectrum);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM