码字不易,如果对您有所帮助,记着点赞哦!

一. 图像傅里叶变换原理:

对二维图像进行傅里叶变换用如下公式进行:

图像长M,高N。F(u,v)表示频域图像,f(x,y)表示时域图像。u的范围为[0,M-1],v的范围为[0,N-1]  ↑

对二维图像进行傅里叶逆变换用如下公式进行:

图像长M,高N。f(x,y)表示时域图像, F(u,v)表示频域图像。x的范围为[0,M-1],y的范围为[0,N-1]  ↑

二. python的numpy库中的图像傅里叶变换公式:

#计算一维傅里叶变换

numpy.fft.fft(a, n=None, axis=-1, norm=None)

#计算二维的傅里叶变换

numpy.fft.fft2(a, n=None, axis=-1, norm=None)

#计算n维的傅里叶变换

numpy.fft.fftn()

#计算n维实数的傅里叶变换

numpy.fft.rfftn()

#返回傅里叶变换的采样频率

numpy.fft.fftfreq()

#将FFT输出中的直流分量移动到频谱中央

numpy.fft.shift()

三. 实验:python的numpy库实现图像傅里叶变换及反变换

# writer:wojianxinygcl@163.com

# date  : 2020.3.30

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

#读取图像

img = cv.imread('../head_g.jpg', 0)

#傅里叶变换

f = np.fft.fft2(img)

fshift = np.fft.fftshift(f)

res = np.log(np.abs(fshift))

#傅里叶逆变换

ishift = np.fft.ifftshift(fshift)

iimg = np.fft.ifft2(ishift)

iimg = np.abs(iimg)

#展示结果

plt.subplot(131), plt.imshow(img, 'gray'), plt.title('Original Image')

plt.axis('off')

plt.subplot(132), plt.imshow(res, 'gray'), plt.title('Fourier Image')

plt.axis('off')

plt.subplot(133), plt.imshow(iimg, 'gray'), plt.title('Inverse Fourier Image')

plt.axis('off')

plt.show()

四. 实验结果:

第三部分代码输出结果 ↑

五. python的cv2库中的图像傅里叶变换公式:

# 傅里叶变换

dft = cv2.dft(np.float32(img), flags = cv2.DFT_COMPLEX_OUTPUT)

# 傅里叶逆变换

iimg = cv2.idft(ishift)

# 返回傅里叶变换后iimg的幅值

res2 = cv2.magnitude(iimg[:,:,0], iimg[:,:,1])

六. 实验:python的cv库和numpy库实现图像傅里叶变换及反变换

# writer:wojianxinygcl@163.com

# date  : 2020.3.30

import numpy as np

import cv2

from matplotlib import pyplot as plt

#读取图像

img = cv2.imread('../paojie_g.jpg', 0)

#傅里叶变换

dft = cv2.dft(np.float32(img), flags = cv2.DFT_COMPLEX_OUTPUT)

dftshift = np.fft.fftshift(dft)

res1= 20*np.log(cv2.magnitude(dftshift[:,:,0], dftshift[:,:,1]))

#傅里叶逆变换

ishift = np.fft.ifftshift(dftshift)

iimg = cv2.idft(ishift)

res2 = cv2.magnitude(iimg[:,:,0], iimg[:,:,1])

#显示图像

plt.subplot(131), plt.imshow(img, 'gray'), plt.title('Original Image')

plt.axis('off')

plt.subplot(132), plt.imshow(res1, 'gray'), plt.title('Fourier Image')

plt.axis('off')

plt.subplot(133), plt.imshow(res2, 'gray'), plt.title('Inverse Fourier Image')

plt.axis('off')

plt.show()

七. 实验结果:

第六部分代码输出结果 ↑

八. 参考内容:

九. 版权声明:

未经作者允许,请勿随意转载抄袭,抄袭情节严重者,作者将考虑追究其法律责任,创作不易,感谢您的理解和配合!

快速傅里叶变换python_图像傅里叶变换快速实现 python相关推荐

  1. 图像的傅里叶变换 java_图像傅里叶变换的步骤是什么? java

    展开全部 冈萨雷斯版里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作62616964757a686964616fe58685e5aeb931333361303635一个玻璃棱镜.棱镜是可以将光分解 ...

  2. 快速入门python_一天快速入门 Python

    Python 是由Guido Van Rossum在 90 年代早期设计,现在是最常用的编程语言之一.特别是人工智能的火热,再加之它的语法简洁且优美,实乃初学者入门AI必备的编程语言. 作者 | yu ...

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

    一.前言 我想认真写好快速傅里叶变换(Fast Fourier Transform,FFT),所以这篇文章会由浅到细,由窄到宽的讲解,但是傅里叶变换对于寻常人并不是很容易理解的,所以对于基础不牢的人我 ...

  4. 图像傅里叶变换(快速傅里叶变换FFT)

    学习DIP第7天,图像傅里叶变换 转载请标明出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对 ...

  5. matlab图片快速傅里叶变换,图像傅里叶变换(快速傅里叶变换FFT) | 学步园

    #include "Image_FFT.h" /* 中心化,根据傅里叶性质的平移性质 */ void FFT_Shift(double * src,int size_w,int s ...

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

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  7. 傅里叶变换、离散傅里叶变换(DFT)、快速傅里叶变换(FFT)详解

    前置知识 以下内容参考<复变函数与积分变换>,如果对积分变换有所了解,完全可以跳过忽略 复数的三角表达式如下 Z=r(cosθ+isinθ)Z=r(cos\theta+isin\theta ...

  8. [Python从零到壹] 六十四.图像识别及经典案例篇之图像傅里叶变换和傅里叶逆变换详解

    祝大家新年快乐,阖家幸福,健康快乐! 欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所 ...

  9. 利用python对图像进行傅里叶变换_(九)OpenCV-Python学习—图像傅里叶变换

    对于二维图片,可以对其进行傅里叶变换,获取图片的频谱信息.频谱有很多应用,包括显著性检测,卷积定理,频率域滤波等,下面是图片傅里叶变换的一些基本概念: 1. 图像傅里叶变换 对于M行N列的图像矩阵f( ...

  10. python傅里叶变换库_python的numpy库和cv2库实现图像傅里叶变换

    码字不易,如果对您有所帮助,记着点赞哦! 一. 图像傅里叶变换原理: 对二维图像进行傅里叶变换用如下公式进行: 图像长M,高N.F(u,v)表示频域图像,f(x,y)表示时域图像.u的范围为[0,M- ...

最新文章

  1. Django框架深入了解_02(DRF之序列化、反序列化)
  2. python量化交易第一天_《Python量化交易教程》第一部分新手入门 第1天:谁来给我讲讲Python?...
  3. 概率论-2.4 常用离散分布(待补充期望方差证明)
  4. 信息学奥赛一本通 1356:计算(calc)
  5. android中显示提示图标在edittext左侧,设置图标的大小,王立平--EditText实现单行显示,左側图标,提示信息...
  6. java 苹果h5不能播放_H5音频不能自动播放的问题
  7. IAR_STM32_BootLoader
  8. 探寻main函数的“标准”写法,以及获取main函数的参数、返回值
  9. 软考__运筹学__2007年11月真题
  10. DiskGeniux无损分区
  11. 联想官方一键关闭Win10Defender、关闭Win10自动更新工具
  12. 【node进阶】深入浅出前后端身份验证(上)---session
  13. 《阵列信号处理及MATLAB实现》绪论、矩阵代数相关内容总结笔记
  14. EBS中二次开发FSG报表2(SQL)
  15. 基于华为巴龙MH5000-31 5G工业/商业模组开发(二)
  16. 反向代理和正向代理的区别
  17. Windows 7 SP1整合补丁
  18. <3>【深度学习 × PyTorch】必会 线性代数 (含详细分析):点积 | 矩阵-向量积 | Hadamard积 | 矩阵乘法 | 范数/矩阵范数
  19. 上周热点回顾(8.20-8.26)
  20. 帆软填报问题之填报显示提交成功,数据库却查不到数据

热门文章

  1. Java 数据字典的实现
  2. MySQL数据库左右连接
  3. BA无标度网络的仿真实现
  4. idc机房运维巡检_24小时保姆式机房巡检设备设计-机房巡检机器人设计
  5. 一个例子搞懂单纯形法大M法和两阶段法
  6. 微信无法打开xlsx文件_电脑微信excel打不开怎么办
  7. 纯干货 | 从淘宝到云端的高可用架构演进
  8. SpringBoot整合定时任务(在线Cron表达式生成器)
  9. 蓝桥杯省赛2020 成绩统计
  10. 计算机软硬件逻辑等价性是指,南航计算机组成原理复习ppt.ppt