matlab中如何对图像作理想高通滤波处理

读入图像“cameraman.tif”并完成以下操作:(1)给图像加均值为0,方差为0.02的“gaussian”型噪声并显示该图像;(2)对图像分别进行理想高通滤波,理想高通加强滤波,截至频率为10,显示滤波后的图像; 第二部分的理想高通滤波,理想高通加强滤波函数怎么写?

I=imread('cameraman.tif');
figure(1);imshow(I);
J=imnoise(I,'gaussian',0,0.02);
figure(2);imshow(J);
J=double(J);
f=fft2(J); %采用傅里叶变换
g=fftshift(f); %数据局陈平衡
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);
d0=10;
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);
if d>=d0
h1=1;
h2=1+0.5;
else
h1=0;
h2=0.5;
end
g1(i,j)=h1*g(i,j);
g2(i,j)=h2*g(i,j);
end
end
g1=ifftshift(g1);
g1=uint8(real(ifft2(g1))); %显示理想高通滤波结果
figure(3);imshow(g1);
title('理想高通滤波结果')
g2=ifftshift(g2);
g2=uint8(real(ifft2(g2)));
figure(4);imshow(g2); %显示理想高通加强滤波结果
title('理想高通加强滤波结果')
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答