Added code to extract data(Image->CSV)
This commit is contained in:
parent
710fb3de58
commit
b114e13e7c
102
EXTRACT_DATA.py
Normal file
102
EXTRACT_DATA.py
Normal file
|
@ -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()
|
Loading…
Reference in New Issue
Block a user