opencv教程(基于python)----图象傅里叶变换

首先说的是关于图象的傅里叶变化,这个数学概念只有部分工科的专业才学,大家可以自己上网看一下。
傅里叶变化通常用来分析不同滤波器的频率特征,我们使用离散傅里叶变换来分析图形的频域特征。实现DFT的一个快速算法被称为快速傅里叶变换(FFT)。
对于之歌正选信号(那种最普通的,scdn弄不出来公式,大家脑补吧。)她频率为f,如果把这个信号转到它的频域表示,我们会在频率f中看到一个峰值。如果我们的信号是采样产生的离散信号组成,我们会看到类似的频谱图,只不过是离散的。
我们对图象进行x方向和y方向的傅里叶变换,我们会得到这幅图象的频谱图 。
更直观一点,图象中的噪声和边界一般是频谱图中的高频分量,没有这么大幅度的我们称之为低频分量。
这里我先用numpy的函数求出频谱图。这里用到的是numpy的fft模块,提供了快速傅里叶变换的功能,在这个模块里很多函数都存在对应的逆操作。

numpy.fft.fft(a, n=None, axis=-1, norm=None)#计算一维的傅里叶变换
numpy.fft.ifft(a, n=None, axis=-1, norm=None)#上面函数的逆操作
numpy.fft.fft2(a, n=None, axis=-1, norm=None)#计算二维的傅里叶变换
numpy.fft.fftn#计算n维的傅里叶变换
numpy.fft.rfftn#计算n维实数的傅里叶变换
numpy.fft.fftfreq#返回傅里叶变换的采样频率
np.fft.fftshift#将FFT输出中的直流分量移动到频谱的中央

下面就是

import cv2
import numpy as np
import matplotlib.pyplot as plt
img1=cv2.imread('C:/Users/dell/Desktop/00.jpg',0)
f=np.fft.fft2(img1)
fshift=np.fft.fftshift(f)
#之所以要进行对数转换是因为傅里叶变换后的结果对于在显示器显示来讲范围比较大,这样的话对于一些小的变化或者是高的变换值不能进行观察
magnitude_spectrum=20*np.log(np.abs(fshift))
plt.subplot(1,2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值