Skip to content

Commit

Permalink
minor changes and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
SamProell committed Jun 11, 2023
1 parent a1c27b1 commit 613155c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
27 changes: 13 additions & 14 deletions yarppg/rppg/rppg.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import Union
from collections import namedtuple
from datetime import datetime
import time
import pathlib

import numpy as np
Expand All @@ -9,7 +10,7 @@
from yarppg.rppg.camera import Camera


def write_dataframe(path, df):
def write_dataframe(path: Union[str, pathlib.Path], df: pd.DataFrame) -> None:
path = pathlib.Path(path)
if path.suffix.lower() == ".csv":
df.to_csv(path, float_format="%.7f", index=False)
Expand Down Expand Up @@ -44,11 +45,9 @@ def __init__(self, roi_detector, parent=None, camera=None,
self._set_camera(camera)

self._dts = []
self.last_update = datetime.now()

self.output_frame = None
self.last_update = time.perf_counter()

self.hr_calculator = hr_calculator

if self.hr_calculator is not None:
self.new_hr = self.hr_calculator.new_hr
else:
Expand All @@ -64,7 +63,6 @@ def add_processor(self, processor):
self._processors.append(processor)

def on_frame_received(self, frame):
self.output_frame = frame
self.roi = self._roi_detector(frame)

for processor in self._processors:
Expand All @@ -79,8 +77,8 @@ def on_frame_received(self, frame):
ts=self.get_ts, fps=self.get_fps()))

def _update_time(self):
dt = (datetime.now() - self.last_update).total_seconds()
self.last_update = datetime.now()
dt = time.perf_counter()- self.last_update
self.last_update = time.perf_counter()
self._dts.append(dt)

return dt
Expand All @@ -103,14 +101,16 @@ def get_fps(self, n=5):
return 1/np.mean(self._dts[-n:])

def save_signals(self):
if self.output_filename is None:
return

path = pathlib.Path(self.output_filename)
path.parent.mkdir(parents=True, exist_ok=True)

df = self.get_dataframe()
write_dataframe(path)
write_dataframe(path, self.get_dataframe())

def get_dataframe(self):
names = ["ts"] + ["p%d" % i for i in range(self.num_processors)]
names = ["ts"] + [str(p) for p in self._processors]
data = np.vstack((self.get_ts(),) + tuple(self.get_vs())).T

return pd.DataFrame(data=data, columns=names)
Expand All @@ -128,6 +128,5 @@ def start(self):

def finish(self):
print("finishing up...")
if self.output_filename is not None:
self.save_signals()
self.save_signals() # save if filename was given.
self._cam.stop()
4 changes: 2 additions & 2 deletions yarppg/ui/mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
from PyQt5.QtWidgets import QMainWindow, QGridLayout, QHBoxLayout, QLabel
import pyqtgraph as pg

# from yarppg.rppg import RPPG
from yarppg.rppg import RPPG

from . import helpers


class MainWindow(QMainWindow):
def __init__(self, app, rppg, winsize=(1000, 400), graphwin=150,
def __init__(self, app, rppg: RPPG, winsize=(1000, 400), graphwin=150,
legend=False, blur_roi=-1):
QMainWindow.__init__(self)
self._app = app
Expand Down

0 comments on commit 613155c

Please sign in to comment.