如何使用matlab对图像进行傅立叶变换

时间:2013-03-28 17:50:24

标签: matlab image-processing

我有一个问题,就是如何在图像上应用傅立叶变换(ftt)(或如何使用傅里叶变换增强图像) 当我运行我的程序时

  • 输入是指纹图像
  • 输出为白色图像
  • 问题是输出应该是指纹图像后增强使用傅立叶变换而不是白色图像

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

我希望找到一些帮助

1 个答案:

答案 0 :(得分:2)

F. ^ F的取幂似乎是一个很大的数,所以它高于上限值,matlab将它作为上限值。

% 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);