数字图像-频域处理

来源:互联网 发布:c语言生产随机数的函数 编辑:程序博客网 时间:2024/06/05 20:18

冈萨雷斯第三版,频域处理代码示例:


% 低通滤波
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 ');



0 0
原创粉丝点击