プログラムを実行するときに、画像にフーリエ変換(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);