Skip to content
Snippets Groups Projects
SaveData.py 1.4 KiB
Newer Older
import time

import cv2
import numpy as np

from Func.CloseProgram import Close
from Func.Helpers import CalculateWidth, CalculateHeight
from cvzone.HandTrackingModule import HandDetector

offset = 20
size = 300
folder = "Data/G"
counter = 0

cap = cv2.VideoCapture(0)
detector = HandDetector(maxHands=1)

if not cap.isOpened():
    print("Failed to open video capture.")
    exit()

while True:
    success, img = cap.read()

    if not success:
Michiel_VE's avatar
Michiel_VE committed
        print('can\'t read image', cap)
        break

    hands, img = detector.findHands(img)

    if hands:
        hand = hands[0]
        x, y, w, h = hand['bbox']

        imgFixed = np.ones((size, size, 3), np.uint8)
        imgCropped = img[y - offset:y + h + offset, x - offset:x + w + offset]

        aspectRatio = h / w

        if aspectRatio > 1:
            CalculateWidth(size, h, w, imgCropped, imgFixed)

        else:
            CalculateHeight(size, h, w, imgCropped, imgFixed)

        cv2.imshow('ImgCropped', imgCropped)
        cv2.imshow('ImgFixed', imgFixed)

    cv2.imshow("img", img)
    key = cv2.waitKey(1)

Michiel_VE's avatar
Michiel_VE committed

    if key == ord('p'):
        Close(cap)
        break

    if key == ord('s'):
Michiel_VE's avatar
Michiel_VE committed
        try:
            counter += 1
            cv2.imwrite(f'{folder}/Image_{time.time()}.jpg', imgFixed)
            print(f'{folder}/Image_{time.time()}.jpg')
            print(counter)
        except Exception as e:
            print(f"Error saving image: {e}")