图像频域增强:陷波滤波器 |
您所在的位置:网站首页 › 带阻滤波器和带通滤波器区别 › 图像频域增强:陷波滤波器 |
理想陷波滤波器
陷波滤波器可以阻止或允许以某个频率为中心的邻域里的频率通过,所以其在本质上仍然是带阻滤波器或带通滤波器,并且可分别称为 带阻陷波滤波器和带通陷波滤波器。 理想带阻陷波滤波器转移函数为: H ( u , v ) = { 0 , D ( u , v ) < = D 0 1 , D ( u , v ) > D 0 H(u, v) = \left\{\begin{aligned}&0, D(u, v) D_0 \end{aligned}\right. H(u,v)={0,D(u,v)D0 D ( u , v ) = [ ( u − u 0 ) 2 + ( v − v 0 ) 2 ] 1 2 D(u, v) = [(u - u_0)^2 + (v - v_0)^2]^{\frac{1}{2}} D(u,v)=[(u−u0)2+(v−v0)2]21带阻陷波滤波器一般是两两工作的,有两个频率中心: H ( u , v ) = { 0 , D 1 ( u , v ) < = D 0 o r D 2 ( u , v ) < = D 0 1 , O t h e r H(u, v) = \left\{\begin{aligned}&0, D_1(u, v) {D_0}^2}{D_1(u, v)D_2(u, v)}\right]^N} H(u,v)=1+[D1(u,v)D2(u,v)D02]N1 D 1 ( u , v ) = [ ( u − u 0 ) 2 + ( v − v 0 ) 2 ] 1 2 D_1(u, v) = [(u - u_0)^2 + (v - v_0)^2]^{\frac{1}{2}} D1(u,v)=[(u−u0)2+(v−v0)2]21 D 2 ( u , v ) = [ ( u + u 0 ) 2 + ( v + v 0 ) 2 ] 1 2 D_2(u, v) = [(u + u_0)^2 + (v + v_0)^2]^{\frac{1}{2}} D2(u,v)=[(u+u0)2+(v+v0)2]21 def bw_notch_filter(img_gray, u0=0, v0=0, d0=50, N=1, ftype='pass'): # 以频谱左上角为坐标原点 dft = cv.dft(img_gray.astype('float32'),flags = cv.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft) m, n, _ = dft_shift.shape x_arr = np.concatenate([np.arange(m).reshape(m, 1)], axis=1) y_arr = np.concatenate([np.arange(n).reshape(1, n)], axis=0) dist1 = np.sqrt((x_arr - u0)**2 + (y_arr - v0)**2) dist2 = np.sqrt((x_arr + u0)**2 + (y_arr + v0)**2) mask = 1 / (1. + ((d0**2)/(np.multiply(dist1, dist2)+0.00001))**N) if ftype == 'pass': mask = 1 - mask bpf_dft_shift = dft_shift * mask.reshape(m, n, 1) magnitude_spectrum = cv.magnitude(bpf_dft_shift[:,:,0], bpf_dft_shift[:,:,1]) log_magnitude_spectrum = 20*np.log(magnitude_spectrum+1) bpf_dft = np.fft.ifftshift(bpf_dft_shift) img_ = cv.idft(bpf_dft) img_bpf = cv.magnitude (img_[:,:,0],img_[:,:,1]) return img_bpf, log_magnitude_spectrum测试效果:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |