Python图像处理:频域滤波降噪和图像增强

频域图像增强实战:傅里叶变换、高频锐化与低频降噪参数调优指南 傅里叶变换是图像处理中连接空域与频域的核心数学工具,其原理是将图像分解为不同频率分量,高频对应边缘与噪声,低频对应背景与渐变。通过频域滤波可精准控制频率成分,实现图像去噪、锐化与光照校正,技术价值在于全局频率选择能力远超空域方法。典型应用场景包括老照片修复、医学影像增强、周期性噪声去除及工业检测。频域增强依赖FFT加速与滤波器设计,如巴特沃斯高通、高斯低通及带阻滤波器,参数选择需平衡细节保留与噪声抑制。本文聚焦频域增强的完整实操链路,从频谱解读到参数调优,提供可直接复用的代码与经验法则。 阅读详情


来源:DeepHub IMBA

本文****约4300字****,建议阅读**8******分钟****

本文将讨论图像从FFT到逆FFT的频率变换所涉及的各个阶段,并结合FFT位移和逆FFT位移的使用。







图像处理已经成为我们日常生活中不可或缺的一部分,涉及到社交媒体和医学成像等各个领域。通过数码相机或卫星照片和医学扫描等其他来源获得的图像可能需要预处理以消除或增强噪声。频域滤波是一种可行的解决方案,它可以在增强图像锐化的同时消除噪声。

快速傅里叶变换(FFT)是一种将图像从空间域变换到频率域的数学技术,是图像处理中进行频率变换的关键工具。通过利用图像的频域表示,我们可以根据图像的频率内容有效地分析图像,从而简化滤波程序的应用以消除噪声。

本文使用了三个Python库,即openCV、Numpy和Matplotlib。

 `import cv2` `import numpy as np` `from matplotlib import pyplot as plt` `img = cv2.imread('sample.png',0) # Using 0 to read image in grayscale mode` `plt.imshow(img, cmap='gray')  #cmap is used to specify imshow that the image is in greyscale` `plt.xticks([]), plt.yticks([])  # remove tick marks` `plt.show()`

1、快速傅里叶变换(FFT)

快速傅里叶变换(FFT)是一种广泛应用的数学技术,它允许图像从空间域转换到频率域,是频率变换的基本组成部分。利用FFT分析,可以得到图像的周期性,并将其划分为不同的频率分量,生成图像频谱,显示每个图像各自频率成分的振幅和相位。

 `f = np.fft.fft2(img)  #the image 'img' is passed to np.fft.fft2() to compute its 2D Discrete Fourier transform f` `mag = 20*np.log(np.abs(f))` `plt.imshow(mag, cmap = 'gray') #cmap='gray' parameter to indicate that the image should be displayed in grayscale.` `plt.title('Magnitude Spectrum')` `plt.xticks([]), plt.yticks([])` `plt.show()`

上面代码使用np.abs()计算傅里叶变换f的幅度,np.log()转换为对数刻度,然后乘以20得到以分贝为单位的幅度。这样做是为了使幅度谱更容易可视化和解释。

2、FFT位移

为了使滤波算法应用于图像,利用FFT移位将图像的零频率分量被移动到频谱的中心

 `fshift = np.fft.fftshift(f)` `mag = 20*np.log(np.abs(fshift))` `plt.imshow(mag, cmap = 'gray')` `plt.title('Centered Spectrum'), plt.xticks([]), plt.yticks([])` `plt.show()`

3、过滤

频率变换的的一个目的是使用各种滤波算法来降低噪声和提高图像质量。两种最常用的图像锐化滤波器是Ideal high-pass filter 和Gaussian high-pass filter。这些滤波器都是使用的通过快速傅里叶变换(FFT)方法获得的图像的频域表示。

Ideal high-pass filter(理想滤波器) 是一种无限长的、具有无限频带宽和理想通带和阻带响应的滤波器。其通带内所有频率的信号都被完全传递,而阻带内所有频率的信号则完全被抑制。

在频域上,理想滤波器的幅频响应为:

  • 在通带内,幅频响应为 1

  • 在阻带内,幅频响应为 0

在时域上,理想滤波器的冲激响应为:

  • 在通带内,冲激响应为一个无限长的单位冲激函数序列

  • 在阻带内,冲激响应为零

由于理想滤波器在频域上具有无限带宽,因此它无法在实际应用中实现。实际中使用的数字滤波器通常是基于理想滤波器的逼近,所以才被成为只是一个Ideal。

高斯高通滤波器(Gaussian high-pass filter)是一种在数字图像处理中常用的滤波器。它的作用是在图像中保留高频细节信息,并抑制低频信号。该滤波器基于高斯函数,具有光滑的频率响应,可以适应各种图像细节。

高斯高通滤波器的频率响应可以表示为:

H(u,v) = 1 - L(u,v)

其中,L(u,

手机摄影黑科技:手把手教你用Python复现HDR+多帧降噪算法(附GitHub代码) 本文详细介绍了如何使用Python复现HDR+多帧降噪算法,提升手机摄影在低光和高对比度场景下的图像质量。通过burst photography技术,结合多帧对齐和融合算法,有效减少噪点并扩展动态范围。文章包含完整的代码实现、环境配置指南和性能优化技巧,帮助开发者快速掌握这一计算摄影黑科技。 阅读详情

相关推荐

从音频处理到图像滤波:用Python+三大变换(FFT/拉普拉斯/Z)玩转信号实战

本文通过Python实战演示了傅里叶变换、拉普拉斯变换和Z变换在音频处理和图像滤波中的应用。从音频降噪到图像锐化,再到数字滤波器设计,详细介绍了三大变换的核心原理和实现方法,帮助读者掌握信号处理的关键技术。

weixin_30325971的博客 387

数字图像处理与Python语言实现系列文章汇总(共138篇)

数字图像处理与Python语言实现专栏将使用Python语言实现经典数字图像处理领域的经典图像处理算法,为深度学习图像处理打下基础。专栏将包含:图像颜色空间转换、图像几何变换、图像频域变换、图像降噪、图像增强、图像形态学处理、图像边缘检测、图像特征提取、图像滤波、图像分割、图像重建、高性能图像处理等等。

视觉与物联智能 2624

数字图像处理:巴特沃斯滤波器简介

本文将介绍巴特沃斯滤波器的原理,并提供相应的源代码示例。其中,H(u, v)表示频域中的滤波器响应,D(u, v)是频域中的距离函数,D₀是截止频率,n是滤波器的阶数。通过调整D₀和n的值,可以控制滤波器的频率响应。函数内部首先将输入图像转换为频域表示,然后根据巴特沃斯滤波器函数的表达式计算滤波器响应,并将其应用于频域图像。调整滤波器的截止频率和阶数,可以根据实际需求获得不同的滤波效果。巴特沃斯滤波器的原理基于巴特沃斯函数,它是一个复杂的有理函数,在频域中具有可控的幅度响应。

KdpdCode的博客 1159

SpotBugs实战:10大类Bug检测规则详解与代码优化实例(附避坑清单)

本文深入解析SpotBugs在Java开发中的实战应用,详细讲解10大类Bug检测规则与代码优化实例,包括NPE防御、多线程安全、性能优化等关键问题。通过具体代码示例和避坑清单,帮助开发者提升代码质量,有效集成到CI/CD流程中。

weixin_42665255的博客 196

华为云Stack应急预案实战:从IaaS到PaaS的故障场景与恢复指南

本文详细解析华为云Stack应急预案在IaaS到PaaS层的故障场景与恢复实践,涵盖计算节点故障、存储链路中断等典型问题。通过标准化操作流程和实战案例,帮助企业在突发故障时快速恢复业务,确保高可用性。华为云Stack的应急预案体系经过金融、政务等严苛场景验证,恢复时间指标(RTO)控制在30分钟以内。

weixin_33724059的博客 373

【Jlink & C#】通过C#实现Jlink RTT上位机的功能

某天看到安富莱家的自己开发的调试器可以实现输出中文调试信息到自己编写的Jlink RTT上位机上,觉得无比神奇,略好奇到底是如何做的,找了很久,发现其上位机的对应的实现好像也没有完全开源出来。后来经过很多搜索确认,知道了几个事实:那么有没有可能用C#来控制Jlink呢?答案是,有!!! 解决思路在于,C#调用JLinkARM.dll里面的函数 这里转载下我认为很有意义的发现结合以上的几个发现,加上我自己的测试,我把我对接JLinkARM.dll的C#接口分享出来,不保证都能用,我只是测试了几个常用的功能,R

一只爱做笔记的码农 9148

Vitis 安装及环境配置

Vitis 官方手册 https://www.xilinx.com/html_docs/xilinx2020_1/vitis_doc/index.html Xilinx Downloads center https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis.html 系统要求如下图所示,Windows系统只能支持Vitis嵌入式系统开发流程,不能支持加速设计 1.安装ubuntu18.0

怠桑的博客 7051

【FPGA】Verilog代码实现温湿度传感器DHT11

#今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能。 先来讲个简单的模块,温湿度传感器DHT11。 DHT11介绍 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传...

Ninquelote的博客 9162

华为OD机试新系统真题【迷宫相遇】

华为OD机试 新系统真题【迷宫相遇】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【迷宫相遇】多语言题解。

qq_45776114的博客 767

redhawk:使用rh_setup.pl产生gsr模板

必须加的option工具会在rh_setup.pl给出提示,按照要求填写即可,另外工具会把所有填写的输入文件和信息放到rh_setup.init文件中,拷贝这个文件可在任何平级运行目录下,直接rh_setup.pl产生gsr以及run sta/dyn/em的脚本。rhsetup.pl -top top_cell_name -vdd_nets VDD 1.2 VDD2 1.2 -vss_nets VSS -frequency 100e6 (100m是默认值)更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 1055

(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常

注意!!! 本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分内容会借用上述文章 文章目录一:中断和异常的基本概念(1)中断和异常的定义 一:中断和异常的基本概念 在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。 操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能

快乐江湖的博客 3531

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: Python医疗数据分析与可视化
下一篇: 安利个一行代码的Python可视化神器!
Python_P叔
博客等级 码龄3年 5449粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值