冈萨雷斯第三版,频域处理代码示例:
% 低通滤波
clc, clear,
I = imread('blown_ic.tif');
[r,c] = size(I);
subplot(331),imshow(I);title('Origin');
Id = padarray(I,[r,c],'post');
subplot(332),imshow(Id);title('pad array');
for i = 1:2*r
for j = 1:2*c
hp(i,j) = (-1)^(i-1+j-1);
end
end
Ip = hp.*double(Id);
subplot(333),imshow(Ip,[]);title('shift array');
F = fft2(Ip);% padding of H
subplot(334),imshow(log(1+abs(F)),[]);title('spectrum of F');
H = lpfilter('gaussian',2*r,2*c,50,1);%
subplot(335),imshow(H,[]);title('H');
G = H.*F;
subplot(336),imshow(G);title('G=H.*F ');
gp = hp.*real(ifft2(G));% filtering
subplot(337),imshow(gp,[]);title('gp ');
g = gp(1:r,1:c);% cropped images
subplot(338),imshow(g,[]);title('g ');