数字图像处理笔记(三)

八、频域滤波

1.低通滤波:过滤高频噪声,但是同时也会抑制边界导致边界模糊;

%%理想低通滤波器

clear all;
close all;
clc;
%% 理想低通滤波器
I = imread('coins.png');
I = im2double(I);
J = imnoise(I,'gaussian',0,0.01);
[m,n] = size(I);
M = 2*m;N=2*n;
u = -M/2:(M/2-1);
v = -N/2:(N/2-1);
[U,V] = meshgrid(u,v);
D = sqrt(U.^2+V.^2);
D0 = 80;
H = double(D<=D0);
J = fftshift(fft2(I,size(H,1),size(H,2)));
K = J.*H;
L = ifft2(ifftshift(K));
L = L(1:size(I,1),1:size(I,2));
figure;
subplot(121);imshow(I);
subplot(122);imshow(L);

%%巴特沃斯滤波器

巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有纹波,而在阻频带则逐渐下降为零。[2] 在对数波特图上,从某一边界角频率开始,幅度随着角频率的增加而线性减少至负无穷。

一阶巴特沃斯滤波器的衰减率为每倍频6 dB,每十倍频20 dB(所有一阶低通滤波器具有相同的归一化频率响应)。二阶巴特沃斯滤波器的衰减率为每倍频12 dB、 三阶巴特沃斯滤波器的衰减率为每倍频18 dB、如此类推。巴特沃斯滤波器的幅度是 ω 的一个单调函数,并且也是唯一的无论阶数,幅度对角频率曲线都保持同样的形状的滤波器。只不过滤波器阶数越高,在阻频带幅度衰减速度越快。其他滤波器高阶的幅度对角频率图和低级数的幅度对角频率有不同的形状。

 

clear all;
close all;
clc;
%% 巴特沃斯低通滤波器
I = imread('liftingbody.png');
I = im2double(I);
M = 2*size(I,1);
N = 2*size(I,2);
u = -M/2:(M/2-1);
v = -N/2:(N/2-1);
[U,V] = meshgrid(u,v);
D = sqrt(U.^2+V.^2);
D0 = 50;
n0 = 6;
H = 1./(1+D./D0).^(2*n0);
J = fftshift(fft2(I,size(H,1),size(H,2)));
K = J.*H;
L = ifft2(ifftshift(K));
L = L(1:size(I,1),1:size(I,2));
figure;
subplot(121);imshow(I);
subplot(122);imshow(L);

2.高通滤波:衰减或抑制低频分量,作用是使图像得到锐化处理,突出图像的边界,一般情况下高通滤波器对噪声没有任何抑制作用。

clear all;
close all;
clc;
%% 巴特沃斯高通滤波器
I = imread('rice.png');
I = im2double(I);
M = 2*size(I,1);
N = 2*size(I,2);
u = -M/2:(M/2-1);
v = -N/2:(N/2-1);
[U,V] = meshgrid(u,v);
D = sqrt(U.^2+V.^2);
D0 = 30;
n = 6;
H = 1./(1+D0./D).^(2*n);
J = fftshift(fft2(I,size(H,1),size(H,2)));
K = J.*H;
L = ifft2(ifftshift(K));
L = L(1:size(I,1),1:size(I,2));
figure;
subplot(121);imshow(I);
subplot(122);imshow(L);

3.带阻滤波器

clear all;
close all;
clc;
%% 带阻滤波器
I = imread('coins.png');
I = imnoise(I,'gaussian',0,0.01);
I = im2double(I);
M = 2*size(I,1);
N = 2*size(I,2);
u = -M/2:(M/2-1);
v = -N/2:(N/2-1);
[U,V] = meshgrid(u,v);
D = sqrt(U.^2+V.^2);
D0 = 50;
W = 30;
H = double(or(D<(D0-W/2),D>D0+W/2));
J = fftshift(fft2(I,size(H,1),size(H,2)));
K = J.*H;
L = ifft2(ifftshift(K));
L = L(1:size(I,1),1:size(I,2));
figure;
subplot(121);imshow(I);
subplot(122);imshow(L);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值