不同阶数的巴特沃斯低通滤波器的空间域表示——数字图像处理

原理

巴特沃斯低通滤波器(Butterworth Low-Pass Filter)在频率域中的定义是明确的,但它在空间域中的表示不是直观的。这是因为巴特沃斯滤波器的形式是基于频率的,并且其空间域表示涉及到一个复杂的逆傅里叶变换,该变换没有一个封闭形式的解析表达。然而,我们可以通过理解其频率域的特性来间接理解其在空间域的行为。

在频率域,巴特沃斯低通滤波器的函数形式如下:

在这里插入图片描述
不同阶数 n 的巴特沃斯低通滤波器在空间域中的主要影响如下:

阶数 n 对平滑度的影响:

较低阶数(如 n=1)的巴特沃斯滤波器在空间域中提供较为平缓的平滑效果,边缘过渡较为柔和。
较高阶数(如 n>1)的滤波器则提供更加强烈的平滑效果,但过渡可能更为尖锐,接近理想低通滤波器的特性。
频率响应与空间响应的关系:
在频率域中,滤波器的截止频率越低,其在空间域中的作用范围越大,导致图像更加模糊。
在空间域中,滤波器的效果取决于其对图像不同频率成分的衰减方式。
空间域的表示:
理论上,可以通过逆傅里叶变换将巴特沃斯滤波器从频率域转换到空间域,但这通常不会产生一个简单的封闭形式的函数。
在实际应用中,巴特沃斯滤波器通常直接在频率域内操作,并在应用逆傅里叶变换回空间域后观察其效果。
由于巴特沃斯滤波器在空间域中没有简洁的表达式,因此在图像处理中通常在频率域内进行设计和应用,然后将处理后的结果转换回空间域以观察和利用其效果。

python实现下图

在这里插入图片描述

提示

不同阶数巴特沃斯低通滤波器的空间域表示。参数如下设置:阶数分别为1,2,5,20,滤波器大小均为1000×1000,截止频率均为5。仍然和上一个实验一样,生成频域的巴特沃斯低通滤波器。之后直接做傅里叶反变换得到空间域的图像表示。为了便于显示,还需要进行对数变换等,具体代码可为HSpatial =

代码实现

import numpy as np
import pandas as pd
from sklearn.model_selection import KFold
import scipy as sp
import matplotlib.pyplot as pltimg_list=[]
img_name_list=[]H=np.ones((1000,1000))for n in [1,2,5,20]:for i in range(1000):for j in range(1000):Duv=np.sqrt(np.power((i-1000/2),2)+np.power((j-1000/2),2))H[i,j]=1/(1+np.power((i-1000/2),2)+np.power((j-1000/2),2))HSpatital=np.log(0.00005+np.abs(np.fft.fftshift(np.fft.ifft2(H))))img_list.append(HSpatital)img_name_list.append("n="+str(n))_,axs=plt.subplots(1,4)for i in range(4):axs[i].imshow(img_list[i],cmap="gray")axs[i].set_title(img_name_list[i])axs[i].axis('off')plt.show()

结果展示

在这里插入图片描述

总结

阶数高的时候高频衰减快。高于截止频率以后,n阶butterworth衰减速度是20n分贝/10倍频。但是做数字滤波的时候你会发现阶数越高系统响应越慢,如果采样间隔是t,通过一个n阶的butterworth,结果和原信号相比基本会有nt的延迟,随着阶数增大,振铃现象逐渐明显,频域的butterworth滤波器也更加接近理想滤波器。
Butterworth低通滤波器可以通过改变次数n,对过度特性进行调整。过大的n会造成振铃现象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

透明展示柜的安装方法

透明展示柜的安装方法主要包括以下步骤: 准备工具和材料:在安装前,需要准备相应的工具和材料,如螺丝刀、电钻、固定架、玻璃板、胶水等。 确定安装位置:选择一个合适的安装位置,确保展示柜的摆放位置合理&…

关于“Python”的核心知识点整理大全62

目录 20.2.2 安装 Heroku Toolbelt 20.2.3 安装必要的包 注意 20.2.4 创建包含包列表的文件 requirements.txt requirements.txt requirements.txt 注意 20.2.5 指定 Python 版本 runtime.txt 注意 20.2.6 为部署到 Herohu 而修改 settings.py settings.py 20.2.7…

SparkStreaming基础解析(四)

1、 Spark Streaming概述 1.1 Spark Streaming是什么 Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、…

鸿蒙南向开发—OpenHarmony技术编译构建框架

概述 OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统,该系统提供以下基本功能: 以部件为最小粒度拼装产品和独立编译。支持轻量、小型、标准三种系…

竞赛保研 基于机器视觉的行人口罩佩戴检测

简介 2020新冠爆发以来,疫情牵动着全国人民的心,一线医护工作者在最前线抗击疫情的同时,我们也可以看到很多科技行业和人工智能领域的从业者,也在贡献着他们的力量。近些天来,旷视、商汤、海康、百度都多家科技公司研…

思科常用图标大全Cisco产品图标库Icon(附PPT下载)

华为企业网络常用图标大全(附PPT下载)-CSDN博客文章浏览阅读2.8k次。PPT完整版获取交换机&WLAN服务器网络&网管建筑公共终端end_华为企业网络常用图标大全https://blog.csdn.net/XMWS_IT/article/details/120864637?ops_request_misc%257B%2522…

OpenAI ChatGPT-4开发笔记2024-03:Chat之Function Calling/Function/Tool/Tool_Choice

Updates on Function Calling were a major highlight at OpenAI DevDay. In another world,原来的function call都不再正常工作了,必须全部重写。 function和function call全部由tool和tool_choice取代。2023年11月之前关于function call的代码都准备翘翘。 干嘛…

【Java EE初阶八】多线程案例(计时器模型)

1. java标准库的计时器 1.1 关于计时器 计时器类似闹钟,有定时的功能,其主要是到时间就会执行某一操作,即可以指定时间,去执行某一逻辑(某一代码)。 1.2 计时器的简单介绍 在java标准库中,提供…

新手可理解的PyTorch线性层解析:神经网络的构建基石

目录 torch.nn子模块Linear Layers详解 nn.Identity Identity 类描述 Identity 类的功能和作用 Identity 类的参数 形状 示例代码 nn.Linear Linear 类描述 Linear 类的功能和作用 Linear 类的参数 形状 变量 示例代码 nn.Bilinear Bilinear 类的功能和作用 B…

国家信息安全水平等级考试NISP二级题目卷⑥(包含答案)

国家信息安全水平等级考试NISP二级题目卷(六) 国家信息安全水平等级考试NISP二级题目卷(六)需要报考咨询可以私信博主! 前言: 国家信息安全水平考试(NISP)二级,被称为校园版”CISP”,由中国信息…

用友U8 Cloud smartweb2.RPC.d XML外部实体注入漏洞

产品介绍 用友U8cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型、集团型企业,提供企业级云ERP整体解决方案。它包含ERP的各项应用,包括iUAP、财务会计、iUFO cloud、供应链与质量管理、人力资源、生产制造、管理会计、资产管理&#…

基于gamma矫正的照片亮度调整(python和opencv实现)

import cv2 import numpy as npdef adjust_gamma(image, gamma1.0):invGamma 1.0 / gammatable np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8")return cv2.LUT(image, table)# 读取图像 original cv2.imread("tes…

影视仓最新配置接口2024tvbox源配置地址

影视仓是在TVBox开源代码基础上开发的优质版本,安装后需要配置接口才能正常使用。影视仓"内置版"是开发者做的资源内置化修改版本,不用自行设置接口,安装后即可使用。 影视仓的接口配置方法与TVBOX一样,区别在于影视仓…

Winform工具箱控件MenuStrip

MenuStrip是菜单栏 ComboBox是下拉框 TextBox是文本框 DataGridView是数据表 TextBox是文本框,大小可以调节,可以是单行,也可以是多行,通过右上角的小三角可以修改。 这个文本在编辑的时候可以在属性的Text中点击右边的小三角来换…

卷积神经网络|导入图片

在学习卷积神经网络时,我们通常使用的就是公开的数据集,这里,我们不使用公开数据集,直接导入自己的图片数据,下面,就简单写个程序实现批量图片的导入。 import osfrom PIL import Imageimport numpy as np…

Prometheus实战篇:Prometheus监控redis

准备环境 docker-compose安装redis docker-compose.yaml version: 3 services:redis:image:redis:5container_name: rediscommand: redis-server --requirepass 123456 --maxmemory 512mbrestart: alwaysvolumes:- /data/redis/data: /dataport:- "6379:6379"dock…

JAVA版随机抽人

主函数 public class Main {public static void main(String[] args) {//这里存入数据String[] data {"土一","李二","张三","李四","乔冠宇","王五"};MyJFrame frame new MyJFrame(data);} }界面类 import j…

【React系列】Portals、Fragment

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) Portals 某些情况下,我们希望渲染的内容独立于父组件,甚至是独立于当前挂载到的DOM元素中&am…

GPU连通域分析方法

第1章连通域分析方法 连通域分析方法用于提取图像中相似属性的区域,并给出区域的面积,位置等特征信息。分为两种,基于游程(Runlength),和基于标记(Label)。 基于游程的方法,按照行对图像进行游…

3D Gaussian Splatting复现

最近3D Gaussian Splatting很火,网上有很多复现过程,大部分都是在Windows上的。Linux上配置环境会方便简单一点,这里记录一下我在Linux上复现的过程。 Windows下的环境配置和编译,建议看这个up主的视频配置,讲解的很细…