-1
我有幾個代碼在matlab中使用空間模式和頻率模式的過濾器。 MATLAB代碼:如何將濾波器在空間到頻域的轉換爲matlab函數?
%% filtering in frequency domain
%% initial command
clc;clear all;close all;
%% filtering in spatial mode
h1=[0 1 0
1 -4 1
0 1 0 ]
f=imread('images/Fig4.11(a).jpg');
if isrgb(f)
f=rgb2gray(f);
else
f=f;
end
gs=imfilter(f,h1);
%% filtering in frequency mode
F=fft2(f);
[R,C]=size(f);
H1=fftshift(freqz2(h1,C,R)); %filter in frequency domain
gf=real(ifft2(H1.*F)); % filtering on image
gfb=gf/256; % normalized
%% print tag
figure;imshow(f);title('Original Image');
figure;imshow(gs);title('Filtering in Spatial Domain ');
figure;imshow(gfb);title('Filtering in Frequency Domain ');
如何能夠在頻率模式,而不是使用MATLAB函數(freqz2(H1,C,R)) 我想轉換我的過濾器在空間到頻域使用濾波器(傅立葉變換)
tnx很多,但我想寫的,沒有matlab函數。它如何工作(fft2或reqz2)。我想要編程這些功能。 – elena
我寫了H1 = fft2(h1,C,R); H1 = fft2(h1);劑量工作(顯示完全黑色的圖像)。爲什麼? – elena
您必須將h1填充到與f相同的尺寸。絕對不要使用freqz2。這完全不是你想要的。 – Aaron