赞
踩
频域滤波是一种图像处理技术,可以通过在频域中增加或减弱某些频率分量,从而实现图像去噪、锐化、平滑等功能。常见的频域滤波包括频域低通滤波、频域高通滤波和频域同态滤波。 在使用这些滤波器进行频域处理时,通常需要选择合适的参数、预处理和后处理方法,以达到理想的处理效果。同时,不同的图像场景和需求也需要选择适合的滤波器和处理方法。
频域低通滤波:低通滤波器将保留图像中低频信息,同时削弱高频信息,从而实现图像模糊、平滑等效果。低通滤波器的频率响应通常为一个圆形区域,圆形区域内表示通过的频率分量,圆形区域外表示被滤掉的频率分量。低通滤波器适合处理噪声较多或需要平滑图像的场景。
以下是实现频域低通滤波中的理想低通滤波:
- close all; %关闭当前所有图形窗口
- clear all; %清空工作空间变量
- clc; %清屏
- I=imread('lena.bmp');
- I=rgb2gray(I);
- I=im2double(I);
- [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);%meshgrid(u,v)的作用是分别产生以向量u为行,向量v为裂的两个大小相同的矩阵
- D=sqrt(U.^2+V.^2);%设置频率点(U,V)与频域中心的距离为D(U,V)
- D0=40; %截止频率
- H=double(D<=D0); %理想低通滤波器
- J=fftshift(fft2(I,size(H,1),size(H,2)));%通过傅里叶变换将时域图像转换到频域图像,并移动到中心位置
- K=J.*H; %滤波处理
- L=ifft2(ifftshift(K)); %傅里叶反转换
- L=L(1:m,1:n); %设置图像的大小
- figure;
- subplot(131),imshow(J);
- subplot(132),imshow(I);
- subplot(133),imshow(L);
频域高通滤波:高通滤波器则削弱低频信息,同时保留高频信息,从而实现图像增强、锐化等效果。高通滤波器的频率响应通常为一环形区域,环形区域内表示被滤掉的频率分量,环形区域外表示通过的频率分量。高通滤波器适合处理模糊或需要突出细节、边缘等特定信息的场景。
以下是实现频域高通滤波中的理想高通滤波:
- close all; %关闭当前所有图形窗口
- clear all; %清空工作空间变量
- clc; %清屏
- I=imread('lena.bmp');
- I=rgb2gray(I);
- I=im2double(I);
- [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);%meshgrid(u,v)的作用是分别产生以向量u为行,向量v为裂的两个大小相同的矩阵
- D=sqrt(U.^2+V.^2);%设置频率点(U,V)与频域中心的距离为D(U,V)
- D0=40; %截止频率
- H=double(D>D0); %理想高通滤波器
- J=fftshift(fft2(I,size(H,1),size(H,2)));%通过傅里叶变换将时域图像转换到频域图像,并移动到中心位置
- K=J.*H; %滤波处理
- L=ifft2(ifftshift(K)); %傅里叶反转换
- L=L(1:m,1:n); %设置图像的大小
- figure;
- subplot(131),imshow(J);
- subplot(132),imshow(I);
- subplot(133),imshow(L);
频域同态滤波:同态滤波器可以同时处理低频和高频信息,通过在频域中对图像进行对数变换,将乘积域转化为加法域,从而实现亮度和反差的调整。同态滤波器常用于处理光照不均和阴影等问题,同时也有一定的去噪和增强效果。
- close all; %关闭当前所有图形窗口
- clear all; %清空工作空间变量
- clc; %清屏
- I=imread('lena.bmp');
- I=rgb2gray(I);
- J=log(im2double(I)+1); %取对数
- K=fft2(J); %傅里叶变换
- n=5; %同态滤波参数
- D0=0.1*pi;
- rh=0.8;
- rl=0.3;
- [row,column]=size(J);
- for i=1:row
- for j=1:column
- D1=sqrt(i^2+j^2);
- H(i,j)=rl+(rh/(1+(D0/D1)^(2*n)));
- end
- end
- L=K.*H; %滤波
- M=ifft2(L); %傅里叶反变换
- N=exp(M)-1; %取指数
- figure;
- subplot(121),imshow(I);
- subplot(122),imshow(real(N));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。