频率域图像增强之理想低通滤波器的python实现——数字图像处理

原理

理想低通滤波器(Ideal Low-Pass Filter, ILPF)是数字图像处理中一个重要的概念,尤其在频率域滤波中扮演着关键角色。
定义:
理想低通滤波器是一种在频率域内工作的滤波器,旨在通过允许低频信号通过同时阻止高频信号来平滑图像。
它在频率域中通常表示为一个中心为原点的圆形区域。
工作原理:
图像首先通过傅里叶变换从空间域转换到频率域。
在频率域内,理想低通滤波器定义了一个截止频率,该频率确定了保留低频成分的区域大小。位于圆形内部(半径小于截止频率)的频率成分被保留,而圆形外部的高频成分被阻断。
截止频率:
截止频率是确定滤波器效果的关键参数。截止频率越低,滤波效果越强,导致图像更加平滑,但同时可能丢失更多的细节。
相反,较高的截止频率会保留更多的高频信息,但滤波效果减弱。
应用效果:
理想低通滤波器能有效去除图像中的噪声和高频细节,使图像变得更加平滑。
但它也可能引入一些不希望的效果,如振铃效应,这是由于其在截止频率处突然变化的特性所导致。
局限性:
理想低通滤波器因其在截止频率处的非自然过渡而不常用于实际应用。这种突然的过渡会导致图像中出现人造的振铃效应。
在实际应用中,通常会选择更平滑的低通滤波器,如高斯低通滤波器,以获得更自然的图像过渡效果。
应用领域:
虽然理想低通滤波器在实际图像处理中的应用受限,但它在理论学习和教育中仍然非常重要,帮助我们理解频率域滤波的基本概念。理想低通滤波器提供了一个基础框架,用于理解如何在频率域内操作图像,以及如何通过频率分析来影响图像的视觉内容。尽管在实际应用中可能更倾向于使用其他类型的低通滤波器,理解理想低通滤波器的基本原理仍然是学习数字图像处理的重要组成部分。

编写代码,

输出如下图所示的结果:
在这里插入图片描述

提示

结果显示了理想低通滤波器截止频率分别为5,15,30,80,230时的滤波结果。首先对图像做傅里叶变换并中心化其频谱。接着生成不同截止频率的理想低通滤波器,公式参考课本上公式5.29,需要注意的是,在计算D(u,v)时,不能直接用书上的公式计算(u,v)和原点(0,0)的距离,由于频谱经过了中心化,频率中心已经平移到了(M/2,N/2),所以要计算(u,v)到(M/2,N/2)的距离。最后,如公式5.28所示,将图像频谱与生成的理想低通滤波器传递函数H(u,v)相乘,再做去中心化和傅里叶反变换,便可以得到滤波后的图像。可以观察半径较小的ILPF的模糊效果和振铃特性。注意,np.fft.ifft2得到的是复数阵列,需要用np.abs取其幅度得到最终的图像。此外,滤波后的图像中会出现像素值超过255的情况,plt.imshow会自动调整灰度图的值域范围,所以为了正确显示图像,需要在imshow时加上参数vmin和vmax,如:axs[i, j].imshow(img, vmin=0, vmax=255, cmap=‘gray’)

import cv2
import numpy as np
import matplotlib.pyplot as plt

img=cv2.imread("Fig0441.tif",0)

rows,cols=img.shape

DFT=np.fft.fft2(img)
center=np.fft.fftshift(DFT)


H=np.zeros((rows,cols))
img_list=[img]
img_name_list=["original"]

for n in [5,15,30,80,230]:
    for i in range(rows):
        for j in range(cols):
            D=np.sqrt(np.power((i-rows/2),2)+np.power((j-cols/2),2))
            if D<=n:
                H[i,j]=1
            else:
                H[i,j]=0

    G=np.multiply(H,center)
    no_center=np.fft.fftshift(G)
    g=np.abs(np.fft.fft2(no_center))
    img_list.append(g)
    img_name_list.append("r="+str(n))
_,axs=plt.subplots(2,3)



for i in range(2):
    for j in range(3):
        axs[i,j].imshow(img_list[i*3+j],vmin=0,vmax=255,cmap="gray")
        axs[i,j].set_title(img_name_list[i*3+j])
        axs[i,j].axis('off')
        
plt.show()
        

结果展示

在这里插入图片描述

总结

做法流程:首先对图像做傅里叶变换并中心化其频谱。接着生成不同截止频率的理想低通滤波器,在计算D(u,v)时,不能直接用书上的公式计算(u,v)和原点(0,0)的距离,由于频谱经过了中心化,频率中心已经平移到了(M/2,N/2),所以要计算(u,v)到(M/2,N/2)的距离。最后,,将图像频谱与生成的理想低通滤波器传递函数H(u,v)相乘,再做去中心化和傅里叶反变换,便可以得到滤波后的图像。可以看到,半径越小,图片越模糊。
低通滤波器容许低频信号通过, 但减弱(或减少)频率高于截止频率的信号的通过。对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器, 或高音消除滤波器。一个理想的低通滤波器能够完全剔除高于截止频率的所有频率信号并且低于截止频率的信号可以不受影响地通过。实际上的转换区域也不再存在。一个理想的低通滤波器可以用数学的方法(理论上)在频域中用信号乘以矩形函数得到,作为具有同样效果的方法,也可以在时域与sinc函数作卷积得到。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7安装-windwos免安装版本

下载地址 官网地址:https://www.mysql.com/官网下载地址:https://dev.mysql.com/downloads/mysql/阿里云镜像站下载:https://mirrors.aliyun.com/mysql/华为云镜像站地址:https://mirrors.huaweicloud.com/home华为云镜像站下载:https://mirrors.huaweicloud.com/mysql/Downlo…

MSVCP140_1.dll文件丢失的解决方法指南,MSVCP140_1.dll最快捷的修复手段

在近些年里&#xff0c;随着电脑技术的迅猛进步&#xff0c;我们对操作系统变得越来越依赖。然而&#xff0c;在使用过程中&#xff0c;我们也可能偶遇一些技术挑战&#xff0c;比如遇到 MSVCP140_1.dll 文件丢失的问题。本文旨在深入探讨这个常见的技术难题&#xff0c;并为大…

跑通大模型领域的 hello world

跑通书生浦语大模型的 3 个趣味 demo&#xff08;InternLM-Chat-7B 智能对话、Lagent工具调用解简单数学题、浦语灵笔多模态图文创作和理解&#xff09;视频和文档。 1、两个框架 InternLM 是⼀个开源的轻量级训练框架&#xff0c;旨在⽀持⼤模型训练⽽⽆需⼤量的依赖。 Lage…

瞧瞧别人家的电商【淘宝1688京东】API接口,那叫一个优雅

淘宝、京东等电商平台的API接口确实非常强大和优雅&#xff0c;它们提供了丰富的功能和数据&#xff0c;使得开发者可以轻松地与平台进行交互&#xff0c;实现各种应用和功能。 以下是一些可能会让你感到优雅的淘宝、京东等电商平台的API接口特点&#xff1a; 接口设计简洁明…

力扣:15.三数之和

1.做题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.做题前须&#xff1a; 两数之和降低复杂度&#xff1a; 1.问题描述&#xff1a;一个数组中找到两个数字之和是taeget 例如&#xff1a;[2,7,11,15,19,21],target30 2.解法一&#xff1a;暴力枚举时间复…

【致远FAQ】V8.0_甘特图能不能实现行表头一级一级显示(树形结构)

问题描述 甘特图能不能实现行表头一级一级显示&#xff08;树形结构&#xff09; 问题解决 设置统计时把合并同类型和显示行合计都勾选上就可以了 效果参考

element中Tree 树形控件实现多选、展开折叠、全选全不选、父子联动、默认展开、默认选中、默认禁用、自定义节点内容、可拖拽节点、手风琴模式

目录 1.代码实现2. 效果图3. 使用到的部分属性说明4. 更多属性配置查看element官网 1.代码实现 <template><div class"TreePage"><el-checkboxv-model"menuExpand"change"handleCheckedTreeExpand($event, menu)">展开/折叠&l…

非接触式红外测温MLX90614

1.MLX90614简介 MX90614是一款由迈来芯公司提供的低成本&#xff0c;无接触温度计。输出数据和物体温度呈线性比例&#xff0c;具有高精度和高分辨率。TO-39金属封装里同时集成了红外感应热电堆探测器芯片MLX81101&#xff08;温度是通过PTC或是PTAT元件测量&#xff09;和信号…

vue简单实现滚动条

背景&#xff1a;产品提了一个需求在一个详情页&#xff0c;一个form表单元素太多了&#xff0c;需要滚动到最下面才能点击提交按钮&#xff0c;很不方便。他的方案是&#xff0c;加一个滚动条&#xff0c;这样可以直接拉到最下面。 优化&#xff1a;1、支持滚动条&#xff0c;…

uniapp 【专题详解 -- 时间】云数据库时间类型设计,时间生成、时间格式化渲染(uni-dateformat 组件的使用)

云数据表的时间类型设计 推荐使用时间戳 timestamp "createTime": {"bsonType": "timestamp","label": "创建时间&#xff1a;" }时间生成 获取当前时间 Date.now() .add({createTime: Date.now() })时间格式化渲染 下载安…

Prototype原型模式(对象创建)

原型模式&#xff1a;Prototype 链接&#xff1a;原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中&#xff0c;经常面临这“某些结构复杂的对象”的创建工作&am…

Chapter 7 - 10. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理

Detecting Congestion on a Remote Monitoring Platform Remote monitoring platforms can monitor all the ports in a network simultaneously to provide network-wide single-pane-of-glass visibility. 远程监控平台可同时监控网络中的所有端口,以提供全网单一窗口可视性…

selenium 用webdriver.Chrome 访问网页闪退解决方案

1.1.1. 解决方案&#xff1a; 1.1.1.1. 移动插件到谷歌的安装目录下 1.1.1.2. 设置环境变量 1.1.1.3. 重启电脑检查成功 解决时间&#xff1a;5min

Springcloud 微服务实战笔记 Eureka

服务治理 服务注册 在服务治理框架中&#xff0c;通常都会构建一个注册中心&#xff0c;每个服务单元向注册中心登记自己提供的服务&#xff0c;将主机与端口号、版本号、通信协议等一些附加信息告知注册中心&#xff0c;注册中心按服务名分类组织服务清单。当服务启动后&…

STM32学习笔记二十一:WS2812制作像素游戏屏-飞行射击游戏(11)探索游戏脚本

还记得上次在第十七章中为BOSS创建的路径动画吧。我们写了一大坨的代码来描述BOSS的运动路径&#xff0c;但凡是写过几年代码的人都不会干出这样的事情。-_-! 没办法&#xff0c;谁叫那时候还没有脚本呢。这章就来补齐这块短板。 脚本属于配置化的一种&#xff0c;你可以把脚…

MongoDB数据类型详解

BSON 协议与数据类型 MongoDB 为什么会使用 BSON&#xff1f; JSON 是当今非常通用的一种跨语言 Web 数据交互格式&#xff0c;属 ECMAScript 标准规范的一个子集。JSON &#xff08;JavaScript Object Notation&#xff0c;JS 对象简谱&#xff09;即 JavaScript 对象表示法…

Docker网络相关操作

文章目录 网络相关操作1 网络模式1.1 bridge模式1.2 host模式1.3 Container网络模式1.4 none模式1.5 overlay网络模式1.6 macvlan网络模式 2 bridge网络2.1 通过link的方式2.2 新建bridge网络 3 none网络4 host网络5 网络命令汇总5.1 查看网络5.2 创建网络5.3 删除网络5.4 查看…

Python 中的==操作符 和 is关键字

Python是一种功能强大的通用编程语言&#xff0c;提供了各种比较值和对象的方法。其中包括操作符和is关键字&#xff0c;它们的用途不同&#xff0c;但由于它们有时可以达到相同的目的&#xff0c;所以经常会被混淆。在本文中&#xff0c;我们将深入研究和is之间的区别&#xf…

过滤器亚马逊审核UL900报告标准

过滤器亚马逊审核UL900防火等级检测标准,要符合ISO17025资质实验室出具的报告才能成功的上架亚马逊平台。 过滤器&#xff08;filter&#xff09;是输送介质管道上不可缺少的一种装置&#xff0c;通常安装在减压阀、泄压阀、定水位阀 ,方工过滤器其它设备的进口端设备。过滤器…

wsl(ubuntu)创建用户

我们打卡ubuntu窗口&#xff0c;如果没有创建用户&#xff0c;那么默认是root用户 用户的增删改查 查 查询所有的用户列表 cat /etc/passwd | cut -d: -f1cat /etc/passwd: 这个命令用于显示 /etc/passwd 文件的内容。/etc/passwd 文件包含了系统上所有用户的基本信息。每一…