12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- """
- Abhängigkeiten:
- - pyramids (für den Aufbau der Bildpyramiden)
- - heartrate (zur Berechnung der Herzfrequenz)
- - preprocessing (für die Video-Vorverarbeitung)
- - eulerian (für die Euler'sche Video-Magnifikation)
- - tkinter und constants (für die GUI und Konstantenverwaltung)
-
- Autor: Roberto Gelsinger
- Datum: 07.12.2023
- Version: Modulversion
- """
-
- import pyramids
- import heartrate
- import facedetection
- import eulerian
- import tkinter as tk
- from constants import freq_max, freq_min
-
- def process_video(selected_video_name):
- """
- Verarbeitet ein ausgewähltes Video, um die Herzfrequenz der abgebildeten Person zu ermitteln.
-
- Dieser Prozess umfasst die Vorverarbeitung des Videos, den Aufbau einer Laplace-Pyramide,
- die Anwendung von FFT-Filterung und Euler'scher Magnifikation, und schließlich die Berechnung
- der Herzfrequenz aus den Video-Daten.
-
- Args:
- selected_video_name (str): Der Name des zu verarbeitenden Videos.
-
- Returns:
- None: Die Funktion gibt direkt die berechnete Herzfrequenz auf der Konsole aus.
- """
- # Hier folgt Ihr bisheriger Code für die process_video Funktion
-
- # Preprocessing phase
- print("Reading + preprocessing video...")
- video_frames, frame_ct, fps = facedetection.read_video("code/videos/"+selected_video_name)
-
- # Build Laplacian video pyramid
- print("Building Laplacian video pyramid...")
- lap_video = pyramids.build_video_pyramid(video_frames)
-
-
-
- for i, video in enumerate(lap_video):
- if i == 0 or i == len(lap_video)-1:
- continue
-
- # Eulerian magnification with temporal FFT filtering
- print("Running FFT and Eulerian magnification...")
- result, fft, frequencies = eulerian.fft_filter(video, freq_min, freq_max, fps)
- lap_video[i] += result
-
- # Calculate heart rate
- print("Calculating heart rate...")
- heart_rate = heartrate.find_heart_rate(fft, frequencies, freq_min, freq_max)
-
-
-
-
- # Output heart rate and final video
- print("Heart rate: ", heart_rate, "bpm")
|