我有一个问题,当我运行我的程序时,它是如何在图像上应用傅里叶变换 (ftt) 的(或者如何增强图像使用傅里叶变换)
- 输入是指纹图像
- 输出是白色图像
- 问题是增强后的输出应该是指纹图像,使用傅里叶变换而不是白色图像
F=fft2( I );
factor=abs(F).^F;
block =ifft2(factor);
R= fftshift(block);
我希望能找到一些帮助
我有一个问题,当我运行我的程序时,它是如何在图像上应用傅里叶变换 (ftt) 的(或者如何增强图像使用傅里叶变换)
F=fft2( I );
factor=abs(F).^F;
block =ifft2(factor);
R= fftshift(block);
我希望能找到一些帮助
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);