diff --git a/eulerian.py b/eulerian.py deleted file mode 100644 index 850fabf..0000000 --- a/eulerian.py +++ /dev/null @@ -1,52 +0,0 @@ -""" -Abhängigkeiten: -- numpy -- scipy.signal (butter, lfilter) -- constants (für die Verwendung von 'alpha') - -Autor: Roberto Gelsinger -Datum: 07.12.2023 -Version: Modulversion -""" - -import numpy as np -from scipy.signal import butter, lfilter -from constants import alpha - -def fft_filter(video, freq_min, freq_max, fps): - """ - - Diese Funktion nimmt Videodaten, eine Frequenzbandbreite und die Bildrate (FPS) des Videos entgegen. - Sie filtert das Video, um nur Frequenzen im angegebenen Band zu verstärken. Das verstärkte Video, die FFT-Daten - und die Frequenzen werden zurückgegeben. - - Args: - video (ndarray): Die Videodaten als ndarray. - freq_min (float): Die untere Grenzfrequenz des zu verstärkenden Frequenzbands. - freq_max (float): Die obere Grenzfrequenz des zu verstärkenden Frequenzbands. - fps (int): Die Bildrate (Frames pro Sekunde) des Videos. - - Returns: - tuple: Ein Tupel, bestehend aus: - - amplified_video (ndarray): Das verstärkte Videodaten als ndarray. - - fft (ndarray): Die FFT-Daten des verstärkten Videos. - - frequencies (ndarray): Die zugehörigen Frequenzen der FFT. - """ - nyquist = 0.5 * fps - low = freq_min / nyquist - high = freq_max / nyquist - - # Min-Max-Frequenzen filtern - b, a = butter(4, [low, high], btype='band') - - filtered_video = np.zeros_like(video) - for i in range(video.shape[2]): - filtered_video[:, :, i] = lfilter(b, a, video[:, :, i]) - - # Verstärkung - amplified_video = np.abs(filtered_video) * alpha - - fft = np.fft.fft(amplified_video, axis=0) - frequencies = np.fft.fftfreq(amplified_video.shape[0], d=1.0 / fps) - - return amplified_video, fft, frequencies