当前位置:文档之家› 用理想低通滤波器在频率域实现低通滤波、用理想高通滤波器在频率域实现高频增强

用理想低通滤波器在频率域实现低通滤波、用理想高通滤波器在频率域实现高频增强

作业5
1、用理想低通滤波器在频率域实现低通滤波
程序代码如下:
clear;
A=imread('picture4.jpg');
I=rgb2gray(A);
figure(1);
imshow(I);
title('原图像');
g = imnoise(I, 'gaussian' ,0 ,0.01);
J = I+g;
figure(2);
imshow(J);
title('加高斯噪声后图像');
s=fftshift(fft2(I));
figure(3);
imshow(abs(s),[]);
title('图像傅里叶变换所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=150;
for i=1:a
for j=1:b
distance=sqrt((i-a0)^2+(j-b0)^2);
if distance<=d h=1;
else h=0;
end;
s(i,j)=h*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
figure(4);
imshow(s);
title('低通滤波后所得图像');
得到的图像如下:
2、用理想高通滤波器在频率域实现高频增强
程序源代码如下:
clrar;
A=imread('picture5.jpg');
I=rgb2gray(A);
figure(1);
imshow(I);
title('原图像');
s=fftshift(fft2(I));
figure(2);
imshow(abs(s),[]);
title('图像傅里叶变换所得频谱');
figure(3);
imshow(log(abs(s)),[]);
title('图像傅里叶变换取对数所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=150;
p=0.2;q=0.5;
for i=1:a
for j=1:b
distance=sqrt((i-a0)^2+(j-b0)^2); if distance<=d h=0;
else h=1;
end;
s(i,j)=(p+q*h)*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s)))); figure(4);
imshow(s);
title('高通滤波所得图像');
figure(5);
imshow(s+I);
title('高通滤波所得高频增强图像');
得到的图像如下:。

相关主题