图像频域滤波白话解释
来源:互联网 发布:网络录像机添加摄像头 编辑:程序博客网 时间:2024/04/29 18:55
一般来说,图像高频分量对应图像细节信息,图像低频分量对应图像轮廓信息。低通滤波能够用来滤除噪声影响,高通滤波则是强调图像的纹理信息。但通过查阅相关资料发现,截止频率的确定却很少进行相关说明。如果我们需要的是图像中某一个频带的信息,如何精确地通过频域滤波获得滤波后的结果?为此做了相关如下实验。
考虑如下图像:
Fig.1
从图中可看出,包括直流成分在内一共有5种频率成分。频谱关于原点对称。分别为:
Fig.2
在频域上分别为:
Fig.3
举个例子来说。如果我们想滤除第二个频率的成分。我们需要构造一个频域滤波器(或称作传递函数),其阻带要包括图3(b)种白点区域。我们通过一个matlab程序构造了如下传递函数。
Fig.4
其中蓝色部分为0,红色部分为1。(可理解为理想滤波器,如果是高斯或者巴特沃兹滤波器不能简单设置阈值决定0和1)。可见,蓝色部分对应图3(b)种白色部分,也就是频域集中位置。
下一步,就是通过求得的传递函数对图像进行滤波。具体步骤是对原图像进行fft变换(matlab函数fft2)。在频域直接与传递函数点乘。然后进行fft逆变换即可。图5为滤波前后的对比结果。可见第二个频率分量被滤除。
fig.5
相关程序代码如下:
生成传递函数矩阵:
function [ H,D ] = lixiang_brfilter(M, N, DL,DH)
% DL=[1,40]; 二维低频截止位置
% DH=[10,50];二维高频截止位置
% M=256;
% N=256;
DL_do=M-DL;
DH_do=M-DH;
H=ones(M,N);
A=[1:1:M];
V=repmat(A,N,1);%É生成距离网格
U=V';
for i=1:M
for j=1:N
if(U(i,j)>DL(1)&U(i,j)<DH(1))&(V(i,j)>DL(2)&V(i,j)<DH(2))
H(i,j)=0;
elseif(U(i,j)>DH_do(1)&U(i,j)<DL_do(1))&(V(i,j)>DH_do(2)&V(i,j)<DL_do(2))%对偶延展
H(i,j)=0;
end
end
end
滤波程序:
function g = dftfilt( f,H )
F=fft2(f,size(H,1),size(H,2));
% perform filtering.
g=real (ifft2(H.*F));
% Crop to original size.
g=g(1:size(f,1),1:size(f,2));
- 图像频域滤波白话解释
- 灰度图像--频域滤波 同态滤波
- 图像频域滤波处理
- 图像增强 空域滤波和频域滤波
- 图像的频域滤波-低通滤波
- 图像的频域滤波-高通滤波
- 图像滤波空间域与频域
- 灰度图像--频域滤波 概论
- 灰度图像--频域滤波 滤波器
- 图像处理 频域滤波函数
- 图像频域滤波(二)
- 图像滤波处理:频域滤波器实现
- 图像空间域滤波
- 【图像处理】从图像空间域滤波到频域滤波
- Matlab中图像处理实例:灰度变换,空域滤波,频域滤波,傅里叶变换的实现
- 灰度图像--频域滤波 傅里叶变换之卷积
- 灰度图像--频域滤波 傅里叶变换之采样定理
- 灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)
- OrientDB 图状数据库示例
- 检查虚拟机是否使用virtio
- spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
- 微信小程序带来的颠覆
- 计算机开机滴滴声解决办法
- 图像频域滤波白话解释
- Redis的持久化
- unity与Android的交互初接触
- Oracle笔记(六)
- 修改android设备号
- Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
- iOS开发之NSNotificationCenter(通知)使用介绍
- mysql的列类型
- Java异常使用