如何在 python 中找到函数的傅立叶变换幅度?

How to find Fourier transform magnitude of a function in python?

我正在计算视频中所有帧的能量(像素值)。

cap= cv2.VideoCapture('video.mp4')
x = []
y = []
def imageEnergy(img):
 img = img / 255  
 return np.sum(np.square(img))
success, image = cap.read()
count = 0
while success: 
 En = imageEnergy(image)
 EnP = En / np.prod(image.shape) 
 print(f"Count: {count} Energy: {EnP}")
 success, image = cap.read()
 x.append(count)
 y.append(EnP)
 count += 1

我想找到能量函数的傅立叶变换幅度,即 Enp。我试过在 y 上使用 fft 但它不起作用。

transform = fft(y)
print (transform)

有人可以指导我吗?

Python 没有内置的 fft。有多个库提供FFT实现,我认为使用最广泛的是numpy。

import numpy as np;
transform = abs(np.fft.fft(y))