【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器

article/2025/10/23 14:38:46

【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器

欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中


4. 频率域高通滤波器

图像边缘化其它灰度的急剧变化与高频分量有关,因此可以在频率域通过高通滤波实现图像锐化。高通滤波衰减傅里叶变换中的低频分量而不干扰高频信息。

4.1 由低通滤波器得到高通滤波器

简单地,在频率域中用 1 减去低通滤波器的传递函数,就可以得到相应的高通滤波器传递函数:
H H P ( u , v ) = 1 − H L P ( u , v ) H_{HP}(u,v) = 1- H_{LP}(u,v) HHP(u,v)=1HLP(u,v)
式中, H H P ( u , v ) H_{HP}(u,v) HHP(u,v) H L P ( u , v ) H_{LP}(u,v) HLP(u,v) 分别表示高通滤波器、低通滤波器的传递函数。

理想高通滤波器(IHPF)的传递函数为:
H ( u , v ) = { 0 , D ( u , v ) ≤ D 0 1 , D ( u , v ) > D 0 H(u,v)=\begin{cases} 0,\ D(u,v) \leq D_0\\ 1,\ D(u,v)>D_0 \end{cases} H(u,v)={0, D(u,v)D01, D(u,v)>D0
高斯高通滤波器(GHPF)的传递函数为:
H ( u , v ) = 1 − e − D 2 ( u , v ) / 2 D 0 2 H(u,v)=1-e^{-D^2 (u,v)/2D_0^2} H(u,v)=1eD2(u,v)/2D02
巴特沃斯高通滤波器(BHPF)的传递函数为:
H ( u , v ) = 1 1 + [ D 0 / D ( u , v ) ] 2 n H(u,v)= \frac {1} {1 + [D_0/D(u,v)]^{2n}} H(u,v)=1+[D0/D(u,v)]2n1


例程 8.23 由低通滤波器得到高通滤波器

# OpenCVdemo08.py
# Demo08 of OpenCV
# 8. 图像的频率域滤波
# Copyright 2021 Youcans, XUPT
# Crated:2021-12-15# 8.23:频率域高通滤波器def ideaHighPassFilter(shape, radius=10):  # 理想高通滤波器u, v = np.mgrid[-1:1:2.0/shape[0], -1:1:2.0/shape[1]]D = np.sqrt(u**2 + v**2)D0 = radius / shape[0]kernel = np.ones(shape)kernel[D <= D0] = 0  # 理想低通滤波 (Idea low pass filter)return kerneldef gaussHighPassFilter(shape, radius=10):  # 高斯高通滤波器# 高斯滤波器:# Gauss = 1/(2*pi*s2) * exp(-(x**2+y**2)/(2*s2))u, v = np.mgrid[-1:1:2.0/shape[0], -1:1:2.0/shape[1]]D = np.sqrt(u**2 + v**2)D0 = radius / shape[0]kernel = 1 - np.exp(- (D ** 2) / (2 *D0**2))return kerneldef butterworthHighPassFilter(shape, radius=10, n=2):  # 巴特沃斯高通滤波u, v = np.mgrid[-1:1:2.0/shape[0], -1:1:2.0/shape[1]]epsilon = 1e-8D = np.sqrt(u**2 + v**2)D0 = radius / shape[0]kernel = 1.0 / (1.0 + np.power(D0/(D + epsilon), 2*n))return kernel# 理想、高斯、巴特沃斯高通传递函数shape = [128, 128]radius = 32IHPF = ideaHighPassFilter(shape, radius=radius)GHPF = gaussHighPassFilter(shape, radius=radius)BHPF = butterworthHighPassFilter(shape, radius=radius)filters = ['IHPF', 'GHPF', 'BHPF']u, v = np.mgrid[-1:1:2.0/shape[0], -1:1:2.0/shape[1]]fig = plt.figure(figsize=(10, 8))for i in range(3):hpFilter = eval(filters[i]).copy()ax1 = fig.add_subplot(3, 3, 3*i+1)ax1.imshow(hpFilter, 'gray')ax1.set_title(filters[i]), ax1.set_xticks([]), ax1.set_yticks([])ax2 = plt.subplot(3,3,3*i+2, projection='3d')ax2.set_title("transfer function")ax2.plot_wireframe(u, v, hpFilter , rstride=2, linewidth=0.5, color='c')ax2.set_xticks([]), ax2.set_yticks([]), ax2.set_zticks([])ax3 = plt.subplot(3,3,3*i+3)profile = hpFilter[shape[0]//2:, shape[1]//2]ax3.plot(profile), ax3.set_title("profile"), ax3.set_xticks([]), ax3.set_yticks([])plt.show()

在这里插入图片描述


(本节完)


版权声明:

youcans@xupt 原创作品,转载必须标注原文链接

Copyright 2021 youcans, XUPT

Crated:2022-1-25


欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

【OpenCV 例程200篇】01. 图像的读取(cv2.imread)
【OpenCV 例程200篇】02. 图像的保存(cv2.imwrite)
【OpenCV 例程200篇】03. 图像的显示(cv2.imshow)
【OpenCV 例程200篇】04. 用 matplotlib 显示图像(plt.imshow)
【OpenCV 例程200篇】05. 图像的属性(np.shape)
【OpenCV 例程200篇】06. 像素的编辑(img.itemset)
【OpenCV 例程200篇】07. 图像的创建(np.zeros)
【OpenCV 例程200篇】08. 图像的复制(np.copy)
【OpenCV 例程200篇】09. 图像的裁剪(cv2.selectROI)
【OpenCV 例程200篇】10. 图像的拼接(np.hstack)
【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
【OpenCV 例程200篇】12. 图像通道的合并(cv2.merge)
【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)
【OpenCV 例程200篇】14. 图像与标量相加(cv2.add)
【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)
【OpenCV 例程200篇】16. 不同尺寸的图像加法
【OpenCV 例程200篇】17. 两张图像的渐变切换
【OpenCV 例程200篇】18. 图像的掩模加法
【OpenCV 例程200篇】19. 图像的圆形遮罩
【OpenCV 例程200篇】20. 图像的按位运算
【OpenCV 例程200篇】21. 图像的叠加
【OpenCV 例程200篇】22. 图像添加非中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】24. 图像的仿射变换
【OpenCV 例程200篇】25. 图像的平移
【OpenCV 例程200篇】26. 图像的旋转(以原点为中心)
【OpenCV 例程200篇】27. 图像的旋转(以任意点为中心)
【OpenCV 例程200篇】28. 图像的旋转(直角旋转)
【OpenCV 例程200篇】29. 图像的翻转(cv2.flip)
【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)
【OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
【OpenCV 例程200篇】32. 图像的扭变(错切)
【OpenCV 例程200篇】33. 图像的复合变换
【OpenCV 例程200篇】34. 图像的投影变换
【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
【OpenCV 例程200篇】36. 直角坐标与极坐标的转换
【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理
【OpenCV 例程200篇】38. 图像的反色变换(图像反转)
【OpenCV 例程200篇】39. 图像灰度的线性变换
【OpenCV 例程200篇】40. 图像分段线性灰度变换
【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)
【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)
【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)
【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)
【OpenCV 例程200篇】45. 图像的灰度直方图
【OpenCV 例程200篇】46. 直方图均衡化
【OpenCV 例程200篇】47. 图像增强—直方图匹配
【OpenCV 例程200篇】48. 图像增强—彩色直方图匹配
【OpenCV 例程200篇】49. 图像增强—局部直方图处理
【OpenCV 例程200篇】50. 图像增强—直方图统计量图像增强
【OpenCV 例程200篇】51. 图像增强—直方图反向追踪
【OpenCV 例程200篇】52. 图像的相关与卷积运算
【OpenCV 例程200篇】53. Scipy 实现图像二维卷积
【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积
【OpenCV 例程200篇】55. 可分离卷积核
【OpenCV 例程200篇】56. 低通盒式滤波器
【OpenCV 例程200篇】57. 低通高斯滤波器
【OpenCV 例程200篇】58. 非线性滤波—中值滤波
【OpenCV 例程200篇】59. 非线性滤波—双边滤波
【OpenCV 例程200篇】60. 非线性滤波—联合双边滤波
【OpenCV 例程200篇】61. 导向滤波(Guided filter)
【OpenCV 例程200篇】62. 图像锐化——钝化掩蔽
【OpenCV 例程200篇】63. 图像锐化——Laplacian 算子
【OpenCV 例程200篇】64. 图像锐化——Sobel 算子
【OpenCV 例程200篇】65. 图像锐化——Scharr 算子
【OpenCV 例程200篇】66. 图像滤波之低通/高通/带阻/带通
【OpenCV 例程200篇】67. 空间域图像增强的综合应用
【OpenCV 例程200篇】68. 空间域图像增强的综合应用
【OpenCV 例程200篇】69. 连续非周期信号的傅立叶系数
【OpenCV 例程200篇】70. 一维连续函数的傅里叶变换
【OpenCV 例程200篇】71. 连续函数的取样
【OpenCV 例程200篇】72. 一维离散傅里叶变换
【OpenCV 例程200篇】73. 二维连续傅里叶变换
【OpenCV 例程200篇】74. 图像的抗混叠
【OpenCV 例程200篇】75. Numpy 实现图像傅里叶变换
【OpenCV 例程200篇】76. OpenCV 实现图像傅里叶变换
【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
【OpenCV 例程200篇】78. 频率域图像滤波基础
【OpenCV 例程200篇】79. 频率域图像滤波的基本步骤
【OpenCV 例程200篇】80. 频率域图像滤波详细步骤
【OpenCV 例程200篇】81. 频率域高斯低通滤波器
【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
【OpenCV 例程200篇】83. 频率域低通滤波:印刷文本字符修复
【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器
【OpenCV 例程200篇】85. 频率域高通滤波器的应用
【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理
【OpenCV 例程200篇】87. 频率域钝化掩蔽
【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波
【OpenCV 例程200篇】89. 带阻滤波器的传递函数
【OpenCV 例程200篇】90. 频率域陷波滤波器
【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声
【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声
【OpenCV 例程200篇】93. 噪声模型的直方图
【OpenCV 例程200篇】94. 算术平均滤波器
【OpenCV 例程200篇】95. 几何均值滤波器
【OpenCV 例程200篇】96. 谐波平均滤波器
【OpenCV 例程200篇】97. 反谐波平均滤波器
【OpenCV 例程200篇】98. 统计排序滤波器
【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
【OpenCV 例程200篇】100. 自适应局部降噪滤波器


http://chatgpt.dhexx.cn/article/sjGkIP4o.shtml

相关文章

四阶巴特沃斯高通滤波器

一、设计方案 1.理论参考 图1.1-1 巴特沃斯高通滤波器归一化幅频响应 图1.1-2 巴特沃斯低通、高通电路阶数n与增益的关系 图1.1-3 二阶高通滤波电路及其传递函数 2.电路设计 综合滤波器滤波效果及电路实现难度&#xff0c;采用四阶高通滤波器 图1.2-1 四阶高通滤波电路 查表得到…

matlab设计模拟高通滤波器

简单记录下在matlab上如何设计出模拟的高通滤波器&#xff0c;包括&#xff1a;巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 %设计高通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器clear all;%wp和ws分别是通带和阻带的频率(截止频…

IIR滤波器设计

matlab代码在最后&#xff0c;仅供参考。 高通滤波器设计 HP:fp400Hz&#xff0c;fs300Hz&#xff0c;Fs1000Hz&#xff0c;αp3dB&#xff0c;αs35dB。 巴特沃斯高通滤波器设计 切比雪夫高通滤波器设计 带通滤波器设计 BP:fsl200Hz&#xff0c;f1300Hz&#xff0c;fsh500H…

设计线性相位高通FIR滤波器

调用MATLAB工具箱函数frl设计线性相位高通FIR滤波器。要求通带截止频奉为0.6 Πrad,限带截止频率为0.45 Πrad,通带最大衰成为0.2 dB.阻带最小衰减为45dB.显示所设计的单位脉冲响应h(n)的数据&#xff0c;并画出损耗函数曲线。 代码&#xff1a; Fs80000; T1/Fs; wp2*pi*4000/…

【转载】设计一个RC高通滤波器或低通滤波器

设计一个RC高通滤波器或低通滤波器 qlexcel 2019-05-03 11:42:42 30981 收藏 93 分类专栏&#xff1a; 器件&amp;传感器 模拟电路&amp;电路分析 一、引出 在一些信号电路中通常会存在一些我们不需要的噪声&#xff0c;比如高频噪声。这个时候就需要滤波器来处理他们…

MATLAB设计滤波器代码

自测可用&#xff0c;最基本的代码&#xff0c;无拔高。 目录 1、设计IIR模拟高低通滤波器 2、设计IIR数字滤波器 3、设计FIR数字滤波器 1、设计IIR模拟高低通滤波器 wp 2*pi*4000;ws 2*pi*1000; ap 0.1;as 40; [N,wc] buttord(wp,ws,ap,as,s); [BH,AH] butter(N,wc…

【滤波器】基于matlab实现微波带低通高通带通滤波器设计

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

设计高通滤波器 HP

高通和低通类似&#xff0c;本篇文章用到的a、b参数&#xff0c;我在低通中有给出那个图 如果大家要设计高通滤波器&#xff0c;大家可以和低通滤波器一起考虑~~~~ ———————————————————————————————— example1: { in there we can see: R1…

二阶高通有源滤波器设计与仿真测试

二阶高通有源滤波器设计与仿真测试 1.压控电压源法二阶高通有源滤波器设计与仿真测试&#xff08;1&#xff09;电路结构&#xff08;2&#xff09;设计步骤&#xff08;3&#xff09;设计举例&#xff08;4&#xff09;仿真测试 2.无限增益多路反馈型二阶高通有源滤波器的设计…

信号处理系统综合设计-最小阶数的IIR数字高通滤波器

微信公众号&#xff1a;创享日记 发送&#xff1a;最小阶 获取完整报告&#xff08;含源代码程序结果分析&#xff09; 设计一个最小阶数的IIR数字高通滤波器&#xff0c;指标要求如下&#xff1a; 以小于1dB的衰减通过150Hz的分量&#xff1b;以至少40dB抑制100Hz的分量&…

一维序列数据处理:FIR高通滤波器设计

1. 加窗法设计滤波器 为什么要加窗设计滤波器&#xff1f;因为为了降低DFT的频率泄露。那什么是DFT频率泄露以及为什么加窗设计就可以降低DFT的频率泄露&#xff1f;解释这个之前&#xff0c;我们先介绍一下DFT&#xff08;离散傅里叶变换&#xff09;和三角函数的正交性知识&…

悬置线高通滤波器设计

从大学到工作&#xff0c;初次接触过的人都觉得我很啰嗦&#xff0c;我很想简洁明了表达&#xff0c;我也读了很多高效表达方法论的书&#xff0c;刻意练习还是发现效果不佳。后来自我反省&#xff0c;发现啰嗦也有可爱的一面&#xff0c;出发点是自己的真诚&#xff0c;我想把…

【Matlab】如何使用Filter Design设计低通、高通、带阻滤波器

如何使用Filter Design设计低通、高通、带阻数字滤波器。 文章目录 前言 一、低通滤波器 二、高通滤波器 三、带阻滤波器 前言 使用Matlab自带的Filter Design APP可以方便、快捷地设计各种FIR/IIR数字滤波器&#xff0c;并且能输出数字滤波器的阶数、幅度响应、相位响应等…

基于汉宁窗的FIR高通滤波器设计

摘 要 本次课程设计是采用MATLAB进行设计基于汉宁窗的FIR高通滤波器音频去噪&#xff0c;在设计过程中&#xff0c;首先录制一段不少于5秒的音频音乐&#xff0c;作为输入信号&#xff0c;并对录制的信号进行采样&#xff1b;其次使用MATLAB会出采样后的语音信号的时域波形和频…

数字滤波器之高通滤波器设计

要求&#xff1a;设计一款高通滤波器&#xff0c;用在音频信号处理过程中&#xff0c;滤掉100Hz以下的信号。 实现方法&#xff1a;通过在Z平面放置零极点的来设计数字滤波器。 设计要点&#xff1a;单位圆上对应于需要加强频率的点附近放置极点&#xff0c;即wπ处附近落极点…

PCB布线及后仿真验证过程(干货满满,建议收藏)

一、布线的基本要求 布线次序考虑 1) 规则驱动布线遵循的基本步骤 定义禁布区&#xff0c;或控制区若有规则约束&#xff0c;要求设置规则试布线&#xff0c;评估单板是否可以布通&#xff0c;若不能布通&#xff0c;需要采用策略Fanout后对覆盖率检查&#xff0c;通常要求满…

PCB布线原则总结

1、环路最小规则------信号线与其回来构成的环路面积极可能小 2、短线规则------布线长度应尽可能短&#xff0c;振荡器应放在离器件很近的位置 3、开环检查规则----- 一般情况下不允许出现一端悬空的布线 4、闭环检查规则------防止信号在不同层间形成闭环 5、20H规则------防…

Altium_Designer PCB布线不受控制

我这里是单位问题&#xff1a; 之前左下角网格Grid设置为 mm&#xff0c;所以我在指定布线规则的时候&#xff0c;系统也是按照 mm 来的 解决方法&#xff1a; 英文输入的情况下&#xff0c;按 快捷键 Q 切换网格单位为 mil 就可以了

pcb布线注意点:晶振

EMC全称Electro Magnetic Compatibility,指设备或系统在其电磁环境中能正常工作&#xff0c;且不对该环境中任何事物构成不能承受的电磁骚扰的能力。EMC是评价电子产品质量的一个重要指标。 从广义上讲&#xff0c;EMC测试的具体项目包括以下两个大项&#xff1a; &#xff0…

PCB原理图绘制(6)——原理图的修改、导出与PCB布线前准

目录 一、端口名称的批量生成 二、元器件的自动编号 三、原理图器件的PCB导入 四、底板大小的设置 五、布线规则的修改 六、报错的解决 一、端口名称的批量生成 在原理图端口标注中&#xff0c;有时会遇到很多有规律的端口&#xff08;如PA0~PA7&#xff09;&#xff0c;这…