本节所用原始图片素材共享于原始图片,提取码 523o
数字图像处理matlab版给出了低通滤波器和高通滤波器的代码,但带阻滤波器和陷波器的代码没有给出来,本节基于高低通滤波器的代码,结合带阻滤波器、陷波滤波器的表达式给出这两种滤波器的matlab实现
带阻滤波器
带阻滤波器的的表达式如下,其中 D ( u , v ) D(u,v) D(u,v)是距离频率中心点的距离, D 0 D_0 D0是阻带中心频率, W W W是阻带宽度:
理想 | 巴特沃斯 | 高斯 |
---|---|---|
H ( u , v ) = { 0 若 D 0 − W 2 ≤ D ≤ D 0 + W 2 1 其 他 H(u,v) = \begin{cases} 0 & 若D_0-\frac{W}{2} \le D \le D_0+\frac{W}{2} \cr 1 & 其他 \end{cases} H(u,v)={ 01若D0−2W≤D≤D0+2W其他 | H ( u , v ) = 1 1 + [ D W D 2 − D 0 2 ] 2 n H(u,v)=\frac{1}{1+\left[ \frac{DW}{D^2 -D_0^2} \right]^{2n}} H(u,v)=1+[D2−D02DW]2n1 | H ( u , v ) = 1 − e − [ D 2 − D 0 2 D W ] 2 H(u, v) = 1 - e^{-\left[ \frac{D^2-D_0^2}{DW} \right]^{2}} H(u,v)=1−e−[DWD2−D02]2 |
基于上面表格所列出的表达式,我们可以得到带阻滤波器的代码如下
function H = brfilter(type, M, N, D0, W, n)
%BRFILTER Computes frequency domain band reject filters.
% H = BRFILTER(TYPE, M, N, D0, W, n) creates the transfer function of
% a band reject filter, H, of the specified TYPE and size (M-by-N). To
% view the filter as an image or mesh plot, it should be centered
% using H = fftshift(H).
%
% Valid values for TYPE, D0, W and n are:
%
% 'ideal' Ideal band reject filter with cutoff frequency D0 and
% reject band width W. n need not be supplied.
% D0 and w must be positive.