对图像进行频域滤波的几种常用低通滤波器,python-opencv实现:

低通滤波器(Low-pass filter)容许低频信号通过,但减弱频率高于截止频率的信号的通过。对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器,或高音消除滤波器。

设H(u,v)H(u, v)H(u,v)为滤波器,D(u,v)D(u, v)D(u,v)为像素点到参考点的距离,D0D_0D0​为滤波器半径。

理想低通滤波器
H(u,v)={1D(u,v)≤D00D(u,v)>D0H(u, v) = \left\{ \begin{array}{ccc} 1 & D(u, v) \le D_0\\ 0 & D(u, v) > D_0\end{array} \right. H(u,v)={10​D(u,v)≤D0​D(u,v)>D0​​

import cv2 as cv
import numpy as npdef ILPF(shape, radius):mask = np.zeros(shape[:2], dtype=np.uint8)cv.circle(mask, (int(w / 2), int(h / 2)), radius, (255, 255, 255), -1)return mask# 示意图
cv.imshow('ilpf', ILPF((900, 900), 30))

示意图:

butterworth巴特沃斯滤波器
巴特沃斯滤波器的特点是通频带(passband)内的频率响应曲线最大限度平坦,没有涟波,而在阻频带则逐渐下降为零。

一阶巴特沃斯滤波器的衰减率为每倍频6 dB,每十倍频20 dB(所有一阶低通滤波器具有相同的归一化频率响应)。二阶巴特沃斯滤波器的衰减率为每倍频12 dB、 三阶巴特沃斯滤波器的衰减率为每倍频18 dB、如此类推。巴特沃斯滤波器的振幅是 ω 的一个单调函数,并且也是唯一的无论阶数,振幅对角频率曲线都保持同样的形状的滤波器。只不过滤波器阶数越高,在阻频带振幅衰减速度越快。其他滤波器高阶的振幅对角频率图和低级数的振幅对角频率有不同的形状。
H(u,v)=11+(D(u,v)D0)2nH(u, v) = \frac{1}{1 + (\frac{D(u, v)}{D_0})^{2n}} H(u,v)=1+(D0​D(u,v)​)2n1​

def butterworth_filter(shape, rank, radius):""" butterworth filter genreatorH(u, v) = 1 / (1 + (D(u, v) / radius)^(2 * rank))Args:shape:  滤波器的形状rank:   滤波器阶数radius: 滤波器半径"""# 中心位置h, w = shape[:2]cx, cy = int(w / 2), int(h / 2)# 计算以中心为原点坐标分量u = np.array([[x - cx for x in range(w)] for i in range(h)], dtype=np.float32)v = np.array([[y - cy for y in range(h)] for i in range(w)], dtype=np.float32).T# 每个点到中心的距离dis = np.sqrt(u * u + v * v)filt = 1 / (1 + np.power(dis / radius, 2 * rank))return filt

一、二阶滤波器

高斯滤波器
高斯滤波器的过度特性非常平坦,不会产生振铃现象(二维高斯分布)
H(u,v)=e−12⋅(D(u,v)D0)2H(u, v) = e^{-\frac{1}{2}\cdot (\frac{D(u, v)}{D_0})^2} H(u,v)=e−21​⋅(D0​D(u,v)​)2

def gaussian_filter(shape, sigma):""" Gaussian Low Pass filterArgs:shape: 滤波器形状sigma: sigma值(半径)H(u, v) = e^(-(u^2 + v^2) / (2 * sigma^2))"""h, w = shape[: 2]cx, cy = int(w / 2), int(h / 2)u = np.array([[x - cx for x in range(w)] for i in range(h)], dtype=np.float32)v = np.array([[y - cy for y in range(h)] for i in range(w)], dtype=np.float32).Tdis2 = u * u + v * vp = -dis2 / (2 * sigma**2)#filt = 1 / (2 * pi * sigma**2) * np.exp(p)filt = np.exp(p)return filt

图像处理:理想低通滤波器、butterworth滤波器(巴特沃斯)、高斯滤波器实现(python)相关推荐

  1. [DSP] Butterworth (巴特沃斯)数字滤波器设计参考

    Butterworth (巴特沃斯)滤波器设计参考 -- By Water 在嵌入式音频产品开发过程中经常会到LPF(Low Pass Filter 低通滤波器)和HPF(High Pass Filt ...

  2. 【老生谈算法】matlab实现巴特沃斯IIR滤波器程序设计源码

    matlab巴特沃斯IIR滤波器程序设计 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab巴特沃斯IIR滤波器程序 ...

  3. 单片机高斯滤波器 c语言,高斯滤波器在实时系统中的快速实现

    详细讨论了高斯滤波器在单片机系统中的快速实现方法,并给出了对于MCS-51系列单片机的具体实现程序,介绍的方法在实时控制.信号检测与处理方面有很大的实用价值.本文引用地址:http://www.eep ...

  4. Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)

    数字图像处理第二次编程课后作业 理想低通(d=10,50,150): close all; clear all;%% ---------Ideal Lowpass Filters (Fre. Doma ...

  5. matlab的巴特沃斯滤波器,巴特沃斯滤波器滤波

    计划用主频为40Hz的雷克子波,傅里叶变换后,利用巴特沃斯高通滤波器滤除5,7,15Hz及以下的频率,以下为我写的程序及滤波后所得结果,有两个问题需要请教:1.滤波后所得频谱图(图二)的横坐标没有从零 ...

  6. python巴特沃斯滤波器_butterworth-实时数字巴特沃斯IIR滤波器-Kei Imada

    作者:Kei Imada ### 作者邮箱:kimada1@swarthmore.edu ### 首页:https://github.com/keikun555/butter ### 文档:None ...

  7. 常用模拟低通滤波器的设计~经典 IIR 滤波器之巴特沃斯滤波器

    目录 常用模拟低通滤波器的设计--巴特沃斯(Butterworth)滤波器 1.确定系统函数的极点 2.巴特沃斯(Butterworth)滤波器 2.1.buttap 函数 2.2.buttord 函 ...

  8. 用巴特沃斯滤波器进行潮汐滤波分析

    作业记录 题目:利用某潮位站一月份的逐时潮汐观测数据,采用巴特沃斯低通滤波器进行潮汐滤波分析,求出低通滤波结果和高通滤波结果. 一.巴特沃斯滤波器及滤波器设计 巴特沃斯滤波器 巴特沃斯滤波器是一种递归 ...

  9. 巴特沃斯低通滤波器归一化matlab,基于MATLAB设计巴特沃斯低通滤波器

    <基于MATLAB设计巴特沃斯低通滤波器>由会员分享,可在线阅读,更多相关<基于MATLAB设计巴特沃斯低通滤波器(6页珍藏版)>请在人人文库网上搜索. 1.基于MATLAB设 ...

  10. 巴特沃斯滤波器、切比雪夫、椭圆滤波

    滤波器概述 滤波器的作用就是过滤波形,过滤掉不需要的波形成分,与在时间上截取某一部分波形相区别,这个波形成分一般用频率来描述,也可以用模拟角频率核数字角频率来描述.从滤波器的通带范围可以分为低通.高通 ...

最新文章

  1. Mongo、Redis、Memcached对比及知识总结
  2. 开发日记-20190723 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 13
  3. 索尼将成立200亿日元基金 投资机器人、人工智能等新兴企业
  4. 在Docker中体验数据库之MySql
  5. vivado SOC——hello word(上)建立SOC系统
  6. Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果
  7. IAR在写结构体时不提示_智能物流装车系统的结构优化与改进
  8. C++ stringstream介绍,使用方法与例子
  9. 5-python学习——条件语句
  10. 力扣332. 重新安排行程(JavaScript)
  11. UIKit should not be called from a secondary thread.
  12. Xcode 12 to build a single binary with both 32-bit and 64-bit support
  13. d3_3 ATM模拟系统
  14. Delphi XE10.4 安装AlphaControls15.12
  15. java伪随机数(菜鸟教程)
  16. 飞信2009_从飞信倒下的八个原因看运营商的复兴之路
  17. 叮咚:分享一款超棒的模组:IDO-SOM6Y08
  18. 我的世界服务器修改npc指令,我的世界自定义npc指令 | 手游网游页游攻略大全
  19. PHP水果店管理系统,水果店管理系统设计是?水果店管理系统优势是?
  20. IIR数字滤波器设计和实现

热门文章

  1. 海康威视、python环境下onvif安装,多通道摄像头获取rtsp视频流
  2. wifi 频段表_wifi频段如何设置为5ghz
  3. 南宁Java程序员平均工资_南宁程序员平均工资 在南宁做程序员有一万工资吗
  4. 如何释放计算机的ip地址,电脑执行释放DNS和更新IP的命令是什么?怎么执行
  5. 后基因组行为遗传学:从革命到常规(上)
  6. ray 渲染基本使用流程
  7. 三阶魔方中心块调整公式及助记方法
  8. 方波正弦波三角波信号发生电路
  9. 正弦波和方波驱动的优缺点
  10. HAL库的学习 ——FLASH的使用