傅里叶变换

numpy傅里叶变换

醉酒当歌 提交于 2019-11-28 14:03:27
傅里叶变换 傅里叶级数是针对周期性函数在时域上的展开 傅里叶变换是傅里叶级数在频域上的可视化 Key_Function Code import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2 * np.pi, 30) wave = np.cos(x) transformed = np.fft.fft(wave) # 对余弦波信号应用fft函数 # ifft是fft函数的逆运算 print(np.all(np.abs(np.fft.ifft(transformed) - wave) < 10 ** -9)) # True plt.plot(transformed) plt.show() 来源: https://www.cnblogs.com/draven123/p/11410094.html

OpenCV 低通滤波

拥有回忆 提交于 2019-11-28 05:48:35
#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; Mat I;//输入的图像矩阵 Mat F;//图像的快速傅里叶变换 Point maxLoc;//傅里叶谱的最大值的坐标 int radius = 20;//截断频率 const int Max_RADIUS = 100;//设置最大的截断频率 Mat lpFilter;//低通滤波器 int lpType = 0;//低通滤波器的类型 const int MAX_LPTYPE = 2; Mat F_lpFilter;//低通傅里叶变换 Mat FlpSpectrum;//低通傅里叶变换的傅里叶谱灰度级 Mat result;//低通滤波后的效果 string lpFilterspectrum = "低通傅里叶谱";//显示窗口的名称 //快速傅里叶变换 void fft2Image(InputArray _src, OutputArray _dst); //幅度谱 void amplitudeSpectrum(InputArray _srcFFT, OutputArray

GCN

柔情痞子 提交于 2019-11-27 21:06:14
参考 论文笔记:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS 如何理解 Graph Convolutional Network(GCN)? 图卷积网络(Graph Convolutional Network, GCN) 图卷积网络(Graph Convolutional Network) GCN入门理论 在看GCN前首先要理解GCN的理论基石 卷积定理 卷积定理指出 , 函数卷积的傅立叶变换是函数傅立叶变换的乘积 。既然在图上不好做卷积,那就转换到傅立叶域里做乘积,则先对图$ f $和卷积核$ h$ 做傅立叶变换后相乘,再傅立叶逆变换回来,就得到了图域卷积。即, 傅里叶变换 传统 傅里叶变换 定义为: 其频率为$w$,基函数为$e^{-iwt}$,其中基函数满足: 其中上三角符合为 拉普拉斯算子 又广义特征方程的定义是: 所以基函数$e^{-iwt}$是变换 拉普拉斯算子 的特征函数,则我们可以做以下类比 将图拉普拉斯矩阵的特征向量作为傅里叶变换的基 ,我们可以得到在图上的傅里叶变换定义为: 推广到矩阵形式 即($U=[u_{1},u_{2},...,u_{N}]u_{i}$是列向量) (矩阵变换细节) 我们还需得到在图上的傅里叶逆变换,传统的傅里叶逆变换是对频率$w$求积分:

2019年11月20日开发手记

匆匆过客 提交于 2019-11-27 19:44:30
两种运动检测算法的介绍: 帧差法: 帧差法是目前运动目标检测中最常用的算法。帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰度变化为非0,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。 二维频域运动目标检测: 通过对动态图像的行列分解, 将三维频域内的运动检测问题转化到两组二维频域内进行, 从而降低了滤波器设计的难度。给出了一种提取主运动能量的自适应滤波算法, 通过剔除背景和噪声的频率成分, 有效地检测出运动目标。 复杂度分析: 针对帧差法进行分析,代码复杂度主要集中在absdiff与findContours部分,其中absdiff的迭代次数为2*500*500=50000次,时间为88.46ms(取两百帧计算平均的时间) 针对二维频域运动目标检测算法,这里有两个代码版本: 针对py-new-fuliye.py,代码的复杂度主要集中在两个部分:傅里叶变换以及遍历,在py-new-fuliye.py中,共使用了两次傅里叶变换与两次遍历,遍历的迭代次数次数为2*50*30=300次,时间为:54.175ms 针对pepoplefft.py(改进版)进行分析,使用了两次傅里叶变换(一次正一次逆),进行了一次嵌套遍历

OpenCV 傅里叶变换 低频滤波

白昼怎懂夜的黑 提交于 2019-11-27 12:00:33
#include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #include <opencv2\imgproc\imgproc.hpp> using namespace std; using namespace cv; int main() { string path = "1.png"; Mat src = imread(path, 0); //【1】创建一个复数矩阵,储存傅里叶变换后的矩阵 int r = getOptimalDFTSize(src.rows); int c = getOptimalDFTSize(src.cols);//得到最优尺寸 Mat padded; //扩充src的边缘,将图像变大( 0, r - src.rows, 0, c - src.cols)分别表示上下左右; copyMakeBorder(src, padded, 0, r - src.rows, 0, c - src.cols, BORDER_CONSTANT, ::Scalar::all(0)); //创建一个复数矩阵,实部为plane[0],虚部plane[1]填充0 Mat plane[] = { Mat_<float>(padded),Mat::zeros(padded.size(),CV_32F)

python基于傅里叶变换的频率滤波-音频降噪

巧了我就是萌 提交于 2019-11-27 08:19:34
''' 基于傅里叶变换的频域滤波。 ''' import numpy as np import numpy . fft as nf import matplotlib . pyplot as plt import scipy . io . wavfile as wf #读取音频文件,将其按照采样率离散化,返回采样率和信号 #sample_reate:采样率(每秒采样个数), sigs:每个采样位移值。 #================1.原始音频信号,时域信息================================= sameple_rate , sigs = wf . read ( '../da_data/noised.wav' ) print ( '采样率:{}' . format ( sameple_rate ) ) print ( '信号点数量:{}' . format ( sigs . size ) ) sigs = sigs / ( 2 ** 15 ) times = np . arange ( len ( sigs ) ) / sameple_rate plt . figure ( 'Filter' , facecolor = 'lightgray' ) plt . subplot ( 221 ) plt . title ( 'Time Domain' ,