我想在滤波器sobel和图像之间制作频域产品而我无法获得 过滤后的图像在此代码中我的问题是什么
[A,B]=size(f);
%[C,D]=size(fspecial('sobel'));
h=fspecial('gaussian');
[C,D]=size(h);
hp=freqz2(h,size(f,2),size(f,1));
'%padarray(h,[ceil(((A-C)/2)) ceil(((B-D)/2))] );
'%hp=hp(1:254,1:256);
HP=fft2(hp);
HP=ifftshift(HP);
F=fft2(f);
G=HP.*F; % product of transfer function and image in frequency domain
g=real(ifft2(G));
imshow(g) % do not work
答案 0 :(得分:0)
您不需要HP=fft2(hp);
,hp
已经在频域。只需删除该行,然后使用
HP=ifftshift(hp);
F=fft2(f);
G=HP.*F;
g=real(ifft2(G));
imshow(g)