-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdataCollection.py
More file actions
42 lines (42 loc) · 1.33 KB
/
Copy pathdataCollection.py
File metadata and controls
42 lines (42 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import cv2
from cvzone.HandTrackingModule import HandDetector
import numpy as np
import math
cap=cv2.VideoCapture(0)
detector=HandDetector(maxHands=1)
offset=20
imgSize=300
folder="Data/E"
counter=0
while True:
success, img=cap.read()
hands, img=detector.findHands(img)
if hands:
hand=hands[0]
x, y, w, h=hand['bbox']
imgWhite=np.ones((imgSize, imgSize, 3), np.uint8)*255
imgCrop=img[y-offset:y+h+offset, x-offset:x+w+offset]
imgCropShape=imgCrop.shape
aspectRatio=h/w
if aspectRatio>1:
k=imgSize/h
wCal=math.ceil(k*w)
imgResize=cv2.resize(imgCrop, (wCal, imgSize))
imgResizeShape=imgResize.shape
wGap=math.ceil((imgSize-wCal)/2)
imgWhite[:, wGap:wCal+wGap]=imgResize
else:
k=imgSize/w
hCal=math.ceil(k*h)
imgResize=cv2.resize(imgCrop, (imgSize, hCal))
imgResizeShape=imgResize.shape
hGap=math.ceil((imgSize-hCal)/2)
imgWhite[hGap:hCal+hGap, :]=imgResize
cv2.imshow("ImageCrop", imgCrop)
cv2.imshow("ImageWhite", imgWhite)
cv2.imshow("Image", img)
key=cv2.waitKey(1)
if key==ord("s"):
counter+=1
cv2.imwrite(f'{folder}/Image_{np.random.randint(0,10000)}.jpg', imgWhite)
print(counter)