diff --git a/feature_mapper/pinch_mapper.py b/feature_mapper/pinch_mapper.py index bc8ae4a..f5624b0 100644 --- a/feature_mapper/pinch_mapper.py +++ b/feature_mapper/pinch_mapper.py @@ -55,8 +55,9 @@ def process_features(self, raw_landmarker_data: dict) -> dict: distance = math.dist([index_pos.x, index_pos.y], [thumb_pos.x, thumb_pos.y]) middle = np.mean([index_pos.x, thumb_pos.x]), np.mean([index_pos.y, thumb_pos.y]) if distance < 0.1: - freq = 100000/((middle[0]**2) * 1000 + 100) - volume = middle[1] + freq = 200 * 50 ** (1-middle[0]) + #freq = 100000/((middle[0]**2) * 1000 + 100) + volume = 1-middle[1] self.audio_params['frequency'] = freq self.audio_params['volume'] = volume diff --git a/main.py b/main.py index b3a9b01..0a2f6a5 100644 --- a/main.py +++ b/main.py @@ -33,15 +33,19 @@ def main(scenario_file: str): while scenario.video_input.is_alive(): # Frame acquisition frame: np.ndarray = scenario.video_input.get_frame() + # frame = cv2.flip(frame, 1) # feature extractor output features = scenario.feature_extractor.process(frame) + # draw landmarks + scenario.feature_extractor.draw_landmarks(frame, features['landmarks']) + # mapping between features and audio data - # audio_params = scenario.feature_mapper.process_features(features) + audio_params = scenario.feature_mapper.process_features(features) # sending audio params - # scenario.audio_generator.data_to_send = audio_params + scenario.audio_generator.data_to_send = audio_params # frame to display display.frame = frame diff --git a/scenarios/main_scenario_flircam.yml b/scenarios/main_scenario_flircam.yml new file mode 100644 index 0000000..57977d7 --- /dev/null +++ b/scenarios/main_scenario_flircam.yml @@ -0,0 +1,16 @@ +scenario: main + +video_input: + class: Flircam + +feature_extractor: + class: HandLandmarker + +feature_mapper: + class: PinchGestureMapper + +audio_generator: + class: OSCGenerator + params: + ip: "127.0.0.1" + port: 11111 diff --git a/start.sh b/start.sh index 4d7c379..dd4e2ed 100755 --- a/start.sh +++ b/start.sh @@ -3,4 +3,5 @@ # python main.py --scenario scenarios/main_scenario.yml # python main.py --scenario scenarios/barycenter_scenario.yml -python main.py --scenario scenarios/pose_scenario.yml +source .venv/bin/activate +python main.py --scenario scenarios/pose_scenario_flircam.yml