|
123456789101112131415161718 |
- import numpy as np
- import scipy.fftpack as fftpack
-
-
- # Temporal bandpass filter with Fast-Fourier Transform
- def fft_filter(video, freq_min, freq_max, fps):
- fft = fftpack.fft(video, axis=0)
- frequencies = fftpack.fftfreq(video.shape[0], d=1.0 / fps)
- bound_low = (np.abs(frequencies - freq_min)).argmin()
- bound_high = (np.abs(frequencies - freq_max)).argmin()
- fft[:bound_low] = 0
- fft[bound_high:-bound_high] = 0
- fft[-bound_low:] = 0
- iff = fftpack.ifft(fft, axis=0)
- result = np.abs(iff)
- result *= 100 # Amplification factor
-
- return result, fft, frequencies
|