diff --git a/EXTRACT_DATA.py b/EXTRACT_DATA.py new file mode 100644 index 000000000..0bfc027ac --- /dev/null +++ b/EXTRACT_DATA.py @@ -0,0 +1,102 @@ +import cv2 +import mediapipe as mp +import pandas as pd +import os +import numpy as np + +def image_processed(file_path): + + # reading the static image + hand_img = cv2.imread(file_path) + + # Image processing + # 1. Convert BGR to RGB + img_rgb = cv2.cvtColor(hand_img, cv2.COLOR_BGR2RGB) + + # 2. Flip the img in Y-axis + img_flip = cv2.flip(img_rgb, 1) + + # accessing MediaPipe solutions + mp_hands = mp.solutions.hands + + # Initialize Hands + hands = mp_hands.Hands(static_image_mode=True, + max_num_hands=2, min_detection_confidence=0.7) + + # Results + output = hands.process(img_flip) + + hands.close() + + try: + data = output.multi_hand_landmarks[0] + #print(data) + + data = str(data) + + data = data.strip().split('\n') + + garbage = ['landmark {', ' visibility: 0.0', ' presence: 0.0', '}'] + + without_garbage = [] + + for i in data: + if i not in garbage: + without_garbage.append(i) + + clean = [] + + for i in without_garbage: + i = i.strip() + clean.append(i[2:]) + + for i in range(0, len(clean)): + clean[i] = float(clean[i]) + + + return([clean]) + + except: + return(np.zeros([1,63], dtype=int)[0]) + +def make_csv(): + + mypath = 'RESIZED_DATASET' + file_name = open('final_datasetBSL.csv', 'a') + + for each_folder in os.listdir(mypath): + if '._' in each_folder: + pass + + else: + for each_number in os.listdir(mypath + '/' + each_folder): + if '._' in each_number: + pass + + else: + label = each_folder + + file_loc = mypath + '/' + each_folder + '/' + each_number + + data = image_processed(file_loc) + + try: + for i in data: + file_name.write(str(i)) + file_name.write(',') + + file_name.write(label) + file_name.write('\n') + + except: + file_name.write('0') + file_name.write(',') + + file_name.write('None') + file_name.write('\n') + + file_name.close() + print('Data Created !!!') + +if __name__ == "__main__": + make_csv() \ No newline at end of file