„eulerian.py“ löschen
This commit is contained in:
parent
40aa48c860
commit
cf1c4ce07c
52
eulerian.py
52
eulerian.py
@ -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
|
|
Loading…
x
Reference in New Issue
Block a user