finished oak and web cams and run files
This commit is contained in:
+11
-3
@@ -1,11 +1,19 @@
|
||||
# === Вот эта связка нужна для всех исполняемых скриптов внутри библиотеки, которая будет использоваться как сабмодуль ===
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).parent.parent
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
# === перед вмеми импортами ===
|
||||
|
||||
import cv2
|
||||
import os
|
||||
import csv
|
||||
import sys
|
||||
from pathlib import Path
|
||||
import argparse
|
||||
|
||||
#sys.path.append(str(Path(__file__).parent.parent))
|
||||
from skeleton.mediapipe_detector import MediaPipeDetector
|
||||
from ml_gestures.feature_extractor import normalize_landmarks
|
||||
|
||||
|
||||
+18
-14
@@ -1,24 +1,28 @@
|
||||
# === Вот эта связка нужна для всех исполняемых скриптов внутри библиотеки, которая будет использоваться как сабмодуль ===
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).parent.parent
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
# === перед вмеми импортами ===
|
||||
|
||||
import cv2
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path
|
||||
from camera import create_camera
|
||||
from camera.factory import create_camera
|
||||
|
||||
def capture_photo(output_dir='captured', camera):
|
||||
def capture_photo(camera, output_dir='captured'):
|
||||
"""
|
||||
Простой инструмент для захвата фото с камеры.
|
||||
При нажатии 's' запускается отсчёт 3 секунды, затем делается снимок.
|
||||
При нажатии 'q' выход.
|
||||
инструмент для захвата фото с камеры.
|
||||
при нажатии 's' запускается отсчёт 3 секунды, затем делается снимок.
|
||||
при нажатии 'q' выход.
|
||||
"""
|
||||
# Создаём папку, если её нет
|
||||
Path(output_dir).mkdir(parents=True, exist_ok=True)
|
||||
|
||||
cap = cv2.VideoCapture(camera_id)
|
||||
if not cap.isOpened():
|
||||
print("Не удалось открыть камеру")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
print("Нажмите 's' для захвата фото (отсчёт 3 секунды)")
|
||||
print("Нажмите 'q' для выхода")
|
||||
|
||||
@@ -77,4 +81,4 @@ if __name__ == '__main__':
|
||||
args = parser.parse_args()
|
||||
|
||||
camera = create_camera(camera_type=args.camera_type, camera_id=args.camera, mirror=not args.no_mirror)
|
||||
capture_photo(output_dir=args.dir, camera)
|
||||
capture_photo(camera, output_dir=args.dir)
|
||||
|
||||
+16
-2
@@ -1,3 +1,14 @@
|
||||
# === Вот эта связка нужна для всех исполняемых скриптов внутри библиотеки, которая будет использоваться как сабмодуль ===
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).parent.parent
|
||||
if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
# === перед вмеми импортами ===
|
||||
|
||||
import cv2
|
||||
import numpy as np
|
||||
import csv
|
||||
@@ -10,7 +21,7 @@ import pandas as pd
|
||||
#sys.path.append(str(Path(__file__).parent.parent))
|
||||
from skeleton.mediapipe_detector import MediaPipeDetector
|
||||
from ml_gestures_dynamic.feature_extractor import extract_sequence
|
||||
from camera import create_camera
|
||||
from camera.factory import create_camera
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
@@ -33,10 +44,12 @@ def main():
|
||||
writer.writerow(header)
|
||||
|
||||
detector = MediaPipeDetector()
|
||||
'''
|
||||
cap = cv2.VideoCapture(args.camera)
|
||||
if not cap.isOpened():
|
||||
print("Камера не найдена")
|
||||
sys.exit(1)
|
||||
'''
|
||||
|
||||
# Определяем следующий ID последовательности
|
||||
try:
|
||||
@@ -127,7 +140,8 @@ def main():
|
||||
start_time = time.time()
|
||||
sequence = []
|
||||
|
||||
cap.release()
|
||||
#cap.release()
|
||||
camera.release()
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user