使用fspecial来生成空间滤波器
使用ifftshift,使得原点位于频率矩形的左上角
分别在空域和频域进行滤波,结果
灰色调是由于存在负值,平均值在使用imshow后会变大,可以使用绝对值
创建二值图像
clc;
clear;
close all;
f=imread('lena.jpg');
f=rgb2gray(f);
imshow(f);
F=fft2(f);
S=fftshift(log(1+abs(F)));
S=gscale(S);
figure;
imshow(S);
h = fspecial('sobel');
PQ=paddedsize(size(f));
H=freqz2(h,PQ(1),PQ(2));
H1=ifftshift(H);
figure;
imshow(abs(H),[]);
figure,imshow(abs(H1),[]);
gs = imfilter(double(f),h);
gf = dftfilt(f,H1);
figure,imshow(gs,[]);
figure,imshow(gf,[])
figure,
imshow(abs(gs),[]);
figure,
imshow(abs(gf),[]);
figure,
imshow(abs(gs)>0.2*abs(max(gs(:))));
figure,
imshow(abs(gf)>0.2*abs(max(gf(:))));