Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import itertools
- import math
- from PIL import Image
- import numpy as np
- import cv2
- import glob
- import os
- import itertools
- #os.system("C:\\OpenARK\\x64\\Release\\OpenARK-SDK.exe")
- total_correct_fingertips_count = 0
- total_CVAR_fingertips = 0
- per_folder_correct_fingertips_count = {}
- per_folder_accuracy = {}
- CVAR_dataset_path = "E:\\datasets\\hand\\CVAR\\test"
- for subdirs, dirs, files in os.walk(CVAR_dataset_path):
- for dir in dirs:
- print("current dir in walk is {}".format(dir))
- per_folder_correct_fingertips_count[dir] = 0
- per_folder_accuracy[dir] = 0
- root_path = CVAR_dataset_path+"\\"+dir
- fingertips_file = open(root_path+"\\"+"fingertips.txt", 'w')
- with open(root_path+"\\"+"joint.txt") as joints_file:
- next(joints_file)
- for line in joints_file:
- line_split = ' '.join(line.split(' ')[1:]).rstrip()
- line_split = line_split.split(' ')
- list_of_list = []
- iterable = iter(line_split)
- sliced_list = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
- fingertips = []
- # fingertips.extend([sliced_list[16], sliced_list[12], sliced_list[8], sliced_list[4], sliced_list[20]])
- fingertips.append(sliced_list[16])
- fingertips.append(sliced_list[12])
- fingertips.append(sliced_list[8])
- fingertips.append(sliced_list[4])
- fingertips.append(sliced_list[20])
- # fingertips.extend([sliced_list[20], sliced_list[4], sliced_list[8], sliced_list[12], sliced_list[16]])
- flat_list = [item for sublist in fingertips for item in sublist]
- str_flat_list = " ".join(str(x) for x in flat_list)
- fingertips_file.write(str_flat_list + "\n")
- fingertips_file.close()
- for file in glob.glob("*_depth.png"):
- im = Image.open(file, 'r')
- width, height = im.size
- pixel_val = list(im.getdata())
- for i in range(len(pixel_val)):
- if (pixel_val[i] == 32001):
- pixel_val[i] = 0
- np_arr = np.array(pixel_val)
- np_reshaped = np_arr.reshape(height, width)
- modified_depth_file = file[:-4] + '_modified.png'
- cv2.imwrite(modified_depth_file, (np_reshaped).astype(np.uint16))
- cvar_file = open(root_path+"\\"+"fingertips.txt")
- cvar_file_lines = cvar_file.readlines()
- cvar_fingertips_count = len(cvar_file_lines) * 5
- total_CVAR_fingertips += cvar_fingertips_count
- if os.path.exists('fingertips_openark.txt'):
- openark_file = open("fingertips_openark.txt")
- openark_file_lines = openark_file.readlines()
- for line_count in range(len(cvar_file_lines)):
- line_split = ' '.join(cvar_file_lines[line_count].split(' ')[:]).rstrip()
- line_split = line_split.split(' ')
- list_of_list = []
- iterable = iter(line_split)
- cvar_sliced = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
- cvar_sliced_reverse = cvar_sliced[::-1]
- print("cvar reversed is {0}".format(cvar_sliced_reverse))
- #print(len(cvar_sliced_reverse))
- line_split = ' '.join(openark_file_lines[line_count].split(' ')[:]).rstrip()
- line_split = line_split.split(' ')
- CVAR_folder = line_split[0]
- #print(CVAR_folder)
- #print(os.path.dirname(CVAR_folder))
- CVAR_dir = os.path.dirname(CVAR_folder)
- print("CVAR dir for depth image is {}".format(CVAR_dir))
- line_split = line_split [1:]
- list_of_list = []
- iterable = iter(line_split)
- openark_sliced = list(iter(lambda: list(itertools.islice(iterable, 3)), []))
- print("openark sliced is {}".format(openark_sliced))
- #print(len(openark_sliced))
- #print(os.linesep)
- print("cvar dir for fingertips.txt is {}".format(os.path.dirname(root_path+"\\"+"fingertips.txt")))
- print(os.linesep)
- print("cvar directory from openark is: {}".format(CVAR_dir))
- if (os.path.dirname(root_path+"\\"+"fingertips.txt") == CVAR_dir):
- for i in range(len(openark_sliced)):
- for j in range(len(cvar_sliced_reverse)):
- if (abs(math.sqrt(pow((float(cvar_sliced_reverse[j][0]) - float(openark_sliced[i][0])),2)
- + pow((float(cvar_sliced_reverse[j][1]) - float(openark_sliced[i][1])),2) ))<10):
- per_folder_correct_fingertips_count[dir]+=1
- total_correct_fingertips_count+=1
- #print(total_correct_fingertips_count)
- print(dir)
- print(per_folder_correct_fingertips_count)
- print("per_folder_correct_fingertips_count[dir]")
- print(per_folder_correct_fingertips_count[dir])
- #if not os.path.exists(dir+'_accuracy.txt'):
- accuracy_file = open(dir+'_accuracy', 'w')
- accuracy = (per_folder_correct_fingertips_count[dir] / cvar_fingertips_count) * 100
- accuracy_file.write(str(accuracy))
- print(accuracy)
- accuracy_file.close()
- #if not os.path.exists('accuracy.txt'):
- accuracy_file = open('accuracy', 'w')
- accuracy = (total_correct_fingertips_count/total_CVAR_fingertips) *100
- accuracy_file.write(str(accuracy))
- print(accuracy)
- accuracy_file.close()
- folder = glob.glob("E:\\datasets\\hand\\CVAR\\test\\*")
- print(len(folder))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement