赞
踩
目录
首先通过傅里叶变换将图像从空间域转换为频率域,然后在频率域内对图像进行处理,最后通过傅里叶反变换到空间域。
频域滤波原理:输出图像傅氏变换==系统频域相应×输入图像傅氏变换
低频成分通过,去除(衰弱)高频成分
图像中尖锐的细节被平滑。
H(u,v)=1 D(u,v)<=D0
H(u,v)=0 D(u,v)>D0
可以理解为在半径为D0的范围内,所有的频率都可以没有衰减地通过滤波器,该半径之外的所有频率都完全被衰减。理想低通滤波器具有平滑图像的作用,但是又很严重的振铃的现象。
利用理想低通滤波器对图像进行滤波具体代码:
- close all;clear all;clc;
- I=imread('ice.bmp');
- I_gray=im2gray(I);
- I2=im2double(I_gray);
- M=2*size(I2,1);%滤波器行数
- N=2*size(I2,2);%滤波器列数
- u=-M/2:(M/2-1);
- v=-N/2:(N/2-1);
- [U,V]=meshgrid(u,v);%此 MATLAB 函数 基于向量 x 和 y 中包含的坐标返回二维网格坐标。
- D=sqrt(U.^2+V.^2);
- D0=15;%截止频率
- H=double(D<=D0);%理想低通滤波器
- J=fftshift(fft2(I2,size(H,1),size(H,2)));%时域图像转换到频域
- K=J.*H;%滤波处理
- L=ifft2(ifftshift(K));
- L=L(1:size(I2,1),1:size(I2,2));
- figure;
- subplot(121);imshow(I2);
- subplot(122);imshow(L);
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
巴特沃斯低通滤波器:
- %巴特沃斯滤波器
- clear all;close all;clc;
- I=imread('ice.bmp');
- I_gray=im2gray(I);
- I2=im2double(I_gray);
- %计算滤波器的行数
- 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=15;
- n=6;
- H=1./(1+(D./D0).^(2*n));
- J=fftshift(fft2(I2,size(H,1),size(H,2)));
- K=J.*H;
- L=ifft2(ifftshift(K));
- L=L(1:size(I2,1),1:size(I,2));
- figure;
- plot(I2);
- figure;
- imshow(I);
- figure;
- imshow(L);
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
衰减或抑制低频分量,让高频分量通过称为高通滤波,其作用是使图像得到锐化处理,突出图像的边界。
下面是高斯高通滤波器实现代码:
-
- clear all;close all;clc;
- I=imread('ice.bmp');
- I_gray=im2gray(I);
- I2=im2double(I_gray);
- %计算滤波器的行数
- 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=15;
- H2=1-exp(-(D.^2)./(2*(D0^2)));%设计高斯高通滤波器
- J2=fftshift(fft2(I2,size(H2,1),size(H2,2)));
- K2=J2.*H2;
- L2=ifft2(ifftshift(K2));
- L2=L2(1:size(I2,1),1:size(I2,2));
- figure;
- imshow(I);
- figure;
- imshow(L2);
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
巴特沃斯高通滤波器代码如下:
- clear all; close all;
- I=imread('ice.bmp');
- 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=15;
- 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;
- imshow(I);
- figure;
- imshow(L);
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。