Python+OpenCV(1)---傅里叶变换

傅里叶变换通俗理解,附python代码 频率为100和频率为2000对应的幅值约为2和5,即待拟合函数中,主要成分就是频率100和2000的基函数,这两个基函数系数分别为2和5。这三个向量两两相互正交(内积为0,相互垂直),同理,三维空间坐标系内任何一个向量都可以看作是这三个单位向量的线性组合。这两个单位向量,正交(内积为0,相互垂直),平面坐标系内任意一个向量,都可以用这两个单位向量来表示。区间内,任意两个都正交,因此三角函数是一组正交基。待拟合目标函数就可以三角函数正交基的线性组合。不仅向量可以作为正交基,函数同样可以作为正交基。 阅读详情
AI摘要

本文基于Python和OpenCV介绍傅里叶变换相关知识。阐述了傅里叶变换原理,即任何连续信号可表示为不同频率正弦波信号的无限叠加。还介绍了逆傅里叶变换,以及高通滤波(对应图像中变化快的灰度分量)和低通滤波(对应图像中变化慢的灰度分量)。

一,傅里叶变换原理

傅里叶的原理表明,任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。利用傅立叶变换算法直接测量原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位就可以表示原始信号。

二,傅里叶变换

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
o=cv2.imread("test.png",0)
# 傅里叶变换
f=np.fft.fft2(o)
# 傅里叶变换后,将低频部分移到中心位置
fshift=np.fft.fftshift(f)
# 傅里叶逆变换 转到0-255
result=20*np.log(np.abs(fshift))
# 显示图像  1行2列,的第一列
plt.subplot(121)
# 原始图像
plt.imshow(o,cmap='gray')
# 傅里叶变换结果
plt.title('original')
# 关闭坐标轴
#plt.axis('off')

# 显示图像  1行2列的第二列
plt.subplot(122)
# 傅里叶变换结果
plt.imshow(result,cmap='gray')
# 傅里叶变换结果
plt.title('result')
# 关闭坐标轴
#plt.axis('off')
# 显示图像
plt.show()

 

三,逆傅里叶变换

import cv2
import numpy as np
import matplotlib.pyplot as plt
#加载图像
o=cv2.imread('test.png', cv2.IMREAD_UNCHANGED)
#傅里叶变换
f=np.fft.fft2(o)
#傅里叶变换后,将低频部分移到中心位置
fshift=np.fft.fftshift(f)
#傅里叶逆变换
ishift=np.fft.ifftshift(fshift)
#傅里叶逆变换
io=np.fft.ifft2(ishift)
#取绝对值
io=np.abs(io)

#显示图像
plt.subplot(121)
#原始图像
plt.imshow(o,cmap='gray')
#原始图像的标题
plt.title('original')
#原始图像的坐标轴不显示
plt.axis('off')

#显示图像
plt.subplot(122)
#傅里叶变换结果图像
plt.imshow(io,cmap='gray')
#傅里叶变换结果图像的标题
plt.title('result')
#傅里叶变换结果图像的坐标轴不显示
plt.axis('off')
#显示图像
plt.show()

 

四,高通滤波

高频对应图像内变化越来越快的灰度分量,是由灰度的尖锐过渡造成的。例如,在一幅大草原的图像中,其中狮子的边缘等信息。

# 傅里叶 高通滤波
# 
import cv2
import numpy as np
import matplotlib.pyplot as plt
o=cv2.imread('test.png',0)
# 傅里叶变换
f=np.fft.fft2(o)
# 傅里叶变换后,将低频部分移到中心位置
fshift=np.fft.fftshift(f)
# 高通滤波
rows,cols=o.shape
# 中心位置
crow,ccol=int(rows/2),int(cols/2)
# 高通滤波,将低频部分置零 (中心部分)
fshift[crow-30:crow+30,ccol-30:ccol+30]=0
# 傅里叶逆变换
ishift=np.fft.ifftshift(fshift)
# 傅里叶逆变换
io=np.fft.ifft2(ishift)
# 取绝对值
io=np.abs(io)
# 显示图像
plt.subplot(121)
plt.imshow(o,cmap='gray')
# 显示图像
plt.subplot(122)
plt.imshow(io,cmap='gray')
plt.show()

 

五,低通滤波 

低频对应图像内变化缓慢的灰度分量。例如,在一幅大草原的图像中,低频对应着广袤的颜色趋于一致的草原。

 

import cv2
import numpy as np
import matplotlib.pyplot as plt
o=cv2.imread("test.png",0)
dft=cv2.dft(np.float32(o),flags=cv2.DFT_COMPLEX_OUTPUT)
dshift=np.fft.fftshift(dft)
rs,cs=o.shape
cr,cc=int(rs/2),int(cs/2)
mask=np.zeros((rs,cs,2),np.int8)
mask[cr-30:cr+30,cc-30:cc+30]=1
md=dshift*mask
imd=np.fft.ifftshift(md)
io=cv2.idft(imd)
i0=cv2.magnitude(io[:,:,0],io[:,:,1])

# 原图像
plt.subplot(121)
plt.imshow(o,cmap='Grays')
plt.axis('off')
plt.title('original')

# 频域处理后图像
plt.subplot(122)
plt.imshow(io ,cmap='Grays')
plt.axis('off')
plt.title('result')
plt.show()

时间序列信号处理(四)——傅里叶变换和短时傅里叶变换python实现 1,解释了傅里叶变换和短时傅里叶变换的原理 2.用python进行实现 3.比较了两个性能 阅读详情

相关推荐

opencv 傅里叶变换(python)

图像处理一般分为空间域处理和频率域处理。空间域处理是直接对图像内的像素进行处理。空间域处理主要划分为灰度变换和空间滤波两种形式。频率域处理是先将图像变换到频率域,然后在频率域对图像进行处理,最后再通过反变换将图像从频率域变换到空间域。时间差,在傅里叶变换里就是相位。相位表述的是与时间差相关的信息。在图像处理过程中,傅里叶变换就是将图像分解为正弦分量和余弦分量两部分,即将图像从空间域转换到频域。数字图像经过傅里叶变换后,得到的频域值是复数。因此,显示傅里叶变换的结果需要使用实数图像(real image)加虚

wkk的博客 1万+

快速傅里叶变换及python代码实现

一、前言   我想认真写好快速傅里叶变换(Fast Fourier Transform,FFT),所以这篇文章会由浅到细,由窄到宽的讲解,但是傅里叶变换对于寻常人并不是很容易理解的,所以对于基础不牢的人我会通过前言普及一下相关知识。   我们复习一下三角函数的标准式: $$y=A\cos (\omega x+\theta)+k$$   $A$代表振幅,函数周期是$\frac{2\pi}...

凌逆战的博客 1万+

Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换)

前面曾经介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这种方法直接对图像空间操作,操作简单,所以也是空间域滤波。频域滤波说到底最终可能是和空间域滤波实现相同的功能,比如实现图像的轮廓提取,在空间域滤波中我们使用一个拉普拉斯模板就可以提取,而在频域内,我们使用一个高通滤波模板(因为轮廓在频域内属于高频信号),可以实现轮廓的提取,后面也会把拉普拉斯模板频域化,会发现

我爱智能 6万+

Python 傅里叶变换 Fourier Transform

一图胜千言Fast Fourier Transform (FFT) 快速傅里叶变换快速傅里叶逆变换。

二分掌柜的 5183

基于OpenCv的图像傅里叶变换

傅里叶变换将原来难以处理的时域信号转换成了易于分析的频域信号,可以利用一些工具对这些频域信号进行处理、加工。最后还可以利用傅里叶反变换将这些频域信号转换成时域信号。 图像经过傅里叶变换后,大部分能力都分布于低频谱段,这对以后图像的压缩、传输都比较有利。

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 1290

python_傅里叶变换(DFT、FFT、STFT)

文章目录一、傅里叶变换1、傅里叶变换基础2、傅里叶变换形式规律3、一些关键概念3、python 实现傅里叶变换二、短时傅里叶变换(STFT) 一、傅里叶变换 1、傅里叶变换基础 参考:深入浅出的讲解傅里叶变换 傅里叶变换:一段信号可以由若干频率不同的正弦信号叠加构成,DFT将将信号从时域变换到频域 用途: 滤波:从一个时域图里剔除组成它的某个频域成分很不容易;但是从频域图里剔除这个成分很容易 求解微分方程 故障诊断:健康的设备的时域曲线图是相似的,异常设备的是不同的,但这一点在时域图种不易被发现,转换到频

qq_34229228的博客 2万+

opencv-python 4.11.1 傅里叶变换

理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,2D离散傅里叶变换(DFT)用于找到频域。称为快速傅里叶变换(FFT)的快速算法用于计算DFT。有关这些的详细信息可以在任何图像处理或信号处理教科书中找到。 对于正弦信号,x(t)= Asin(2πft),我们可以说f是信号的频率,如果采用其频域,我们可以看到f处的尖峰。如果对信号进行采样以形成离散信号,则我们得到相同的频域,但在[-π,π...

Along20210921的博客 284

[Python图像处理] 二十二.Python图像傅里叶变换原理及实现

前面一篇文章我讲解了Python图像量化、采样处理及图像金字塔。本文主要讲解图像傅里叶变换的相关内容,在数字图像处理中,有两个经典的变换被广泛应用——傅里叶变换和霍夫变换。其中,傅里叶变换主要是将时间域上的信号转变为频率域上的信号,用来进行图像除噪、图像增强等处理。基础性文章,希望对你有所帮助。同时,该部分知识均为杨秀璋查阅资料撰写,转载请署名优快云+杨秀璋及原地址出处,谢谢!! 1.图像傅里叶变换 2.Numpy实现傅里叶变换 3.Numpy实现傅里叶逆变换 4.OpenCV实现傅里叶变换

杨秀璋的专栏 5万+

OpenCV-Python Tutorials - 4.11.1 傅里叶变换

目标: 使用OpenCV查找图像的傅立叶变换 使用Numpy中提供的FFT函数 傅立叶变换的一些应用 我们将看到以下函数:cv.dft(),cv.idft()等 理论 傅立叶变换用于分析各种滤波器的频率特性。对于图像,2D离散傅里叶变换(DFT)用于找到频域。称为快速傅里叶变换(FFT)的快速算法用于计算DFT。有关这些的详细信息可以在任何图像处理或信号处理教科书中找到。 对于正弦信号,x(...

hpuhjl的专栏 569

别再用MounRiver了!在VSCode里用PlatformIO搞定CH32V208开发(附完整配置流程)

本文详细介绍了如何在VSCode中使用PlatformIO进行CH32V208开发,替代传统的MounRiver Studio。通过完整的配置流程和优化技巧,开发者可以构建高效、现代化的RISC-V开发环境,显著提升编译速度和开发效率。

weixin_28711397的博客 539

从零开始利用MATLAB进行FPGA设计(六)用ADC采集信号教程1

用AN9238采集信号的方法(1),包含PLL、FIFO、ILA的基础教程。

WZT725的博客 3096

win10+Python3.7.3+OpenCV3.4.1入门学习(十四 傅里叶变换)————14.3 OpenCV实现傅里叶变换

Python版本是Python3.7.3,OpenCV版本OpenCV.3.4.1,开发环境为PyCharm 14.3 OpenCV实现傅里叶变换 OpenCV提供了函数cv2.dft()和cv2.idft()来实现傅里叶变换和逆傅里叶变换,下面分别展开介绍。 14.3.1 实现傅里叶变换 函数cv2.dft()的语法格式为: 返回结果=cv2.dft(原始图像,转换标识) 在使用该函数时,需要注...

qq_951274168的博客 826

高光谱盲超分DBSR复现全记录:从退化估计到双域耦合的工程实践

高光谱图像超分辨率旨在从低分辨率观测中恢复高分辨率光谱立方体,其核心挑战在于退化过程未知,即盲超分问题。盲超分需同时估计模糊核、噪声水平与下采样方式,本质上是病态逆问题,依赖空间与光谱先验约束。双域耦合方法通过联合空间域与光谱域信息,显著提升退化核估计精度与光谱保真度,技术价值在于更贴近真实成像场景。该技术广泛应用于遥感、医学影像与材料检测等领域。本文围绕DBSR(双域盲超分)的复现,深入剖析退化估计子网调试、双域主干训练策略及显存优化等工程细节,为高光谱盲超分实践提供可复现的参考。

weixin_29031057的博客 201

win10+Python3.7.3+OpenCV3.4.1入门学习(十四 傅里叶变换)————14.2 Numpy实现傅里叶变换

Python版本是Python3.7.3,OpenCV版本OpenCV.3.4.1,开发环境为PyCharm 14.2 Numpy实现傅里叶变换 Numpy模块提供了傅里叶变换功能,Numpy模块中的fft2()函数可以实现图像的傅里叶变换。本节介绍如何用Numpy模块实现图像的傅里叶变换,以及在频域内过滤图像的低频信息,保留高频信息,实现高通滤波。 14.2.1 实现傅里叶变换 Numpy提供的...

qq_951274168的博客 653

TensorFlow实战:5步搞定因果推断模型TARNet(附完整代码)

本文提供了一份基于TensorFlow的TARNet因果推断模型实战指南。通过五个清晰步骤,从数据预处理、模型构建到训练评估,详细讲解了如何利用深度模型解决营销评估、疗效分析等场景中的因果效应估计问题,并附有完整代码解决样本不平衡等工程挑战。

python9snake的博客 420

C#与欧姆龙PLC 通信——fins udp协议

该调试助手专门为了帮助大家学习以及测试Fins-Udp通信,下面进行详细介绍。

qq_34059233的博客 2876

win10+Python3.7.3+OpenCV3.4.1入门学习(十四 傅里叶变换)————14.1 傅里叶变换理论基础

Python版本是Python3.7.3,OpenCV版本OpenCV.3.4.1,开发环境为PyCharm 第14章 傅里叶变换 图像处理一般分为空间域处理和频率域处理。 空间域处理是直接对图像内的像素进行处理。空间域处理主要划分为灰度变换和空间滤波两种形式。灰度变换是对图像内的单个像素进行处理,比如调节对比度和处理阈值等。空间滤波涉及图像质量的改变,例如图像平滑处理。空间域处理的计算简单方便,...

qq_951274168的博客 440

Cesium 实现气象(温度,降水,风速)可视化详细代码实现

本教程介绍了使用Cesium实现气象数据可视化的方法,主要包括:1) 搭建Cesium开发环境;2) 三种核心气象要素的展示技术:温度热力图(基于颜色渐变和点密度)、降水区域填充(矩形着色)和风速风向(粒子系统);3) 数据集成方案,包括模拟数据生成和API对接;4) 高级功能如3D温度柱和时间序列动画;5) 性能优化策略,如数据聚合和LOD控制。教程提供了完整的代码示例,从基础配置到视觉效果实现,帮助开发者构建交互式气象可视化应用。

专注AI大模型,软件混淆,授权 1858

利用python对图像进行傅里叶变换_python用opencv 图像傅里叶变换

傅里叶变换dft = cv.dft(np.float32(img),flags = cv.DFT_COMPLEX_OUTPUT)傅里叶逆变换img_back = cv.idft(f_ishift)实验:将图像转换到频率域,低通滤波,将频率域转回到时域,显示图像import numpy as npimport cv2 as cvfrom matplotlib import pyplot as plt...

weixin_35033082的博客 431

逻辑回归:利用Python实现二分类算法

通过使用Python编写的代码,我们可以训练逻辑回归模型并进行预测。接下来,我们将实现逻辑回归算法的训练函数。训练函数将接受训练数据集X和对应的标签y,以及学习率alpha和迭代次数num_iterations。训练完成后,我们可以使用训练得到的参数theta来进行预测。在这个例子中,我们有一个包含4个样本的训练数据集X,每个样本有两个特征。在这个例子中,如果预测概率大于等于0.5,则预测为类别1,否则预测为类别0。现在,我们可以使用训练函数来训练模型。根据给定的样本x_new,预测函数将返回相应的类别。

XlltEditor的博客 326

ABAP CDS Time Functions 全面解析:用 TIMS_IS_VALID 护航时刻字段的正确性

摘要:本文深入解析ABAP CDS时间函数TIMS_IS_VALID的应用,重点介绍其在企业系统时间字段校验中的关键作用。文章指出无效时间数据会导致业务流程混乱,而CDS层校验能有效减少重复逻辑。详细说明TIMS类型格式要求、空值处理规则,并提供两种工程实现方案:在CDS视图中直接派生校验列,或通过ABAP SQL在内存表中批量验证。最后给出可直接运行的代码示例,包括一个ABAP报表演示内存表验证,以及一个CDS View Entity实现系统时间自动映射与校验,帮助开发者在业务场景中快速落地时间校验功能。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 194

Opencv基础使用6——mat-操作

本博文接上一篇博文,继续进行部分 opencv Python 示例代码运行 效果测试 环境搭建、所使用代码版本 – 参考该系列首篇博文 ---- 分割 - 视频人像跟踪 opencv-master4.5.1 Python 程序测试(五)| mat-operations AddingImages【图片线性相加】The dft of an image is taken and it's power spectrum is displayed.【离散傅里叶变换(DFT)】FileStorage you .

专注于AI领域前沿技术学习与分享:目标检测、图像修复、超分重建、AI工程化 677

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

学习笔记(1):Python+OpenCV计算机视觉-傅里叶变换的理论基础

Python+OpenCV计算机视觉系统全面的介绍。

tobestone的博客 225

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【OpenCV-Python】:图像的傅里叶变换与逆傅里叶变换

# 😺一、知识储备 傅里叶变换就是将信号时域转化为频域的过程,本文用程序实现对二维图像的傅里叶变换与逆变换!首先需要知道一维傅里叶变换!⬇️⬇️⬇️ ## 🐶1.1 一维傅里叶变换 一维傅里叶变换的过程如下方动图所示:

王乐予的博客 8744

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《OpenCv视觉之眼》Python图像处理六 :Opencv图像傅里叶变换和傅里叶逆变换原理及实现

本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。同时,希望观看本专栏的小伙伴可以理解到OpenCv进行图像处理的强大哦,如有转载,请注明出处(原文链接和作者署名),感谢各位小伙伴啦! 前文参考: 《OpenCv视觉之眼》Python图像处理一 :Opencv-python的简介及Python环境搭建 《OpenCv视觉之眼》Python图像

qq_42451251的博客 9168

基于OpenCV的傅里叶变换

傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在图像中变化剧烈的地方(比如边界)经过傅里叶别换后就相当与高频,反之变化缓慢的地方就是低频。傅里叶变换可以将图像变换为频率域, 傅立叶反变换将频率域变换为空间域。

weixin_43229348的博客 2522
上一篇: CentOS7安装使用containerd
下一篇: Linux系统用户分类、UID与GID的区别、用户管理的基础命令
夏子曦
夏子曦 优质创作者: 产品设计技术领域 优质创作者: 产品设计技术领域
博客等级 码龄15年 8289粉丝 427原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值