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