def test_original(): #'colorspace': 'RGB', 'Lab' o 'ColorNaming' options = { 'colorspace': 'RGB', 'K': 6, 'synonyms': False, 'single_thr': 0.6, 'verbose': False, 'km_init': 'first', 'metric': 'basic' } ImageFolder = 'Images' GTFile = 'LABELSsmall.txt' GTFile = ImageFolder + '/' + GTFile GT = lb.loadGT(GTFile) DBcolors = [] for gt in GT: print gt[0] im = io.imread(ImageFolder + "/" + gt[0]) colors, _, _ = lb.processImage(im, options) DBcolors.append(colors) encert, _ = lb.evaluate(DBcolors, GT, options) print "Encert promig: " + '%.2f' % (encert * 100) + '%'
def load_text(text): addr = 0 for line in text: if line.startswith(';'): continue if line.find(':') == -1: Memory.write(addr, {'type': 2, 'inst': Parser.inst(line)}) addr += 4 else: Labels.add(line.strip().split(':')[0], addr)
def load_text(text): addr = 0 for line in text: if line.startswith(';'): continue if line.find(':') == -1: Memory.write(addr, {'type': 2, 'inst': Parser.inst(line)}) addr += 4 else: Labels.add(line.strip().split(':')[0], addr)
def resultats(): ImageFolder = 'Images' file = 'LABELSlarge.txt' GTFile = ImageFolder + '/' + file GT = lb.loadGT(GTFile) results = {} resultsK = {} for fitting in fittings: results[fitting] = {} for colorspace in colorspaces: results[fitting][colorspace] = {} for init in inits: results[fitting][colorspace][init] = {} options = {'colorspace':colorspace, 'K':0, 'km_init':init, 'verbose':False, 'single_thr':0.6, 'fitting':fitting, 'max_iter': 100} DBcolors = [] for gt in GT: im = io.imread(ImageFolder+"/"+gt[0]) if imageRescale: im = rescale(im, imageRescale, preserve_range=True) print "" print "Processing --> " + colorspace + " + " + init + " + " + fitting + " --> Image " + gt[0] print "" colors,_,_ = lb.processImage(im, options) DBcolors.append(colors) for metric in metrics: options['metric'] = metric encert, _ = lb.evaluate(DBcolors, GT, options) results[fitting][colorspace][init][metric] = encert*100 for colorspace in colorspaces: resultsK[colorspace] = {} for init in inits: resultsK[colorspace][init] = {} for metric in metrics: resultsK[colorspace][init][metric] = {} for k in range(2, maxK+1): options = {'colorspace':colorspace, 'K':k, 'km_init':init, 'verbose':False, 'single_thr':0.6, 'max_iter': 100} DBcolors = [] for gt in GT: im = io.imread(ImageFolder+"/"+gt[0]) if imageRescale: im = rescale(im, imageRescale, preserve_range=True) colors,_,_ = lb.processImage(im, options) DBcolors.append(colors) for metric in metrics: options['metric'] = metric encert, _ = lb.evaluate(DBcolors, GT, options) resultsK[colorspace][init][metric][k] = encert*100 return results, resultsK
def gen_while_statement(ast): assert ast[0] == 'WhileStatement' exit_label = Labels.temp() loop_label = Labels.temp() builder.insert_label(loop_label) cond = gen_expression_no_in(ast[3]) builder.inst_bez(cond, exit_label) Registers.free([cond]) gen_statement(ast[5]) builder.inst_j(loop_label) builder.insert_label(exit_label)
def gen_while_statement(ast): assert ast[0] == 'WhileStatement' exit_label = Labels.temp() loop_label = Labels.temp() builder.insert_label(loop_label) cond = gen_expression_no_in(ast[3]) builder.inst_bez(cond, exit_label) Registers.free([cond]) gen_statement(ast[5]) builder.inst_j(loop_label) builder.insert_label(exit_label)
def gen_origin_for_statement(ast): assert ast[0] == 'OriginForStatement' exit_label = Labels.temp() loop_label = Labels.temp() gen_expression_no_in(ast[3]) builder.insert_label(loop_label) cond = gen_expression_no_in(ast[5]) builder.inst_bez(cond, exit_label) Registers.free([cond]) gen_statement(ast[9]) gen_expression_no_in(ast[7]) builder.inst_j(loop_label) builder.insert_label(exit_label)
def gen_origin_for_statement(ast): assert ast[0] == 'OriginForStatement' exit_label = Labels.temp() loop_label = Labels.temp() gen_expression_no_in(ast[3]) builder.insert_label(loop_label) cond = gen_expression_no_in(ast[5]) builder.inst_bez(cond, exit_label) Registers.free([cond]) gen_statement(ast[9]) gen_expression_no_in(ast[7]) builder.inst_j(loop_label) builder.insert_label(exit_label)
def gen_do_statement(ast): assert ast[0] == 'DoStatement' loop_label = Labels.temp() gen_statement(ast[2]) cond = gen_expression_no_in(ast[5]) builder.inst_bnz(cond, loop_label) Registers.free([cond])
def gen_function_expression(ast): assert ast[0] == 'FunctionExpression' label = Labels.function() func, temp = Registers.allocate(2) builder.inst_newfunc(func, label) context['function'].append(func) if ast[2] != '(': # The function has an identifier identifier = gen_identifier(ast[2], True) builder.inst_getvar(temp, identifier) builder.inst_move(temp, func) Registers.free([identifier]) args, t1, t2 = Registers.allocate(3) builder.inst_la(t1, Constants.string('arguments')) builder.inst_getfield(args, func, t1) if ast[-3] != '(': # The function has arguments offset = -16 for node in ast[-3]: if type(node) == list: arg = gen_identifier(node, True) builder.inst_getfield(t1, args, arg) builder.inst_la(t2, Constants.integer(offset)) builder.inst_move(t1, t2) Registers.free([arg]) offset -= 4 Registers.free([t1, t2]) # The function body starts. builder.enter(label) gen_function_body(ast[-1]) builder.exit(label) context['function'].pop() return func
def gen_function_expression(ast): assert ast[0] == 'FunctionExpression' label = Labels.function() func, temp = Registers.allocate(2) builder.inst_newfunc(func, label) context['function'].append(func) if ast[2] != '(': # The function has an identifier identifier = gen_identifier(ast[2], True) builder.inst_getvar(temp, identifier) builder.inst_move(temp, func) Registers.free([identifier]) args, t1, t2 = Registers.allocate(3) builder.inst_la(t1, Constants.string('arguments')) builder.inst_getfield(args, func, t1) if ast[-3] != '(': # The function has arguments offset = -16 for node in ast[-3]: if type(node) == list: arg = gen_identifier(node, True) builder.inst_getfield(t1, args, arg) builder.inst_la(t2, Constants.integer(offset)) builder.inst_move(t1, t2) Registers.free([arg]) offset -= 4 Registers.free([t1, t2]) # The function body starts. builder.enter(label) gen_function_body(ast[-1]) builder.exit(label) context['function'].pop() return func
def gen_do_statement(ast): assert ast[0] == 'DoStatement' loop_label = Labels.temp() gen_statement(ast[2]) cond = gen_expression_no_in(ast[5]) builder.inst_bnz(cond, loop_label) Registers.free([cond])
def gen_if_statement(ast): assert ast[0] == 'IfStatement' exp = gen_expression_no_in(ast[3]) exit_label = Labels.temp() if ast[-2] == 'else': # it has 'else' clause else_label = Labels.temp() builder.inst_bez(exp, else_label) gen_statement(ast[5]) builder.inst_j(exit_label) builder.insert_label(else_label) gen_statement(ast[7]) builder.insert_label(exit_label) else: # It has no 'else' clause builder.inst_bez(exp, exit_label) gen_statement(ast[5]) builder.insert_label(exit_label) Registers.free([exp])
def gen_if_statement(ast): assert ast[0] == 'IfStatement' exp = gen_expression_no_in(ast[3]) exit_label = Labels.temp() if ast[-2] == 'else': # it has 'else' clause else_label = Labels.temp() builder.inst_bez(exp, else_label) gen_statement(ast[5]) builder.inst_j(exit_label) builder.insert_label(else_label) gen_statement(ast[7]) builder.insert_label(exit_label) else: # It has no 'else' clause builder.inst_bez(exp, exit_label) gen_statement(ast[5]) builder.insert_label(exit_label) Registers.free([exp])
def exec_newfunc(inst): func_addr = Memory.new_func() address_prop = Memory.get_field(func_addr, Constants.get_str('address')) Memory.set_prop(address_prop, value=Memory.new_int(Labels.query(inst['label']))) outer_func = Memory.read_plain(Registers.read_fp() - 4) outer_prop = Memory.get_field(func_addr, Constants.get_str('outer')) Memory.set_prop(outer_prop, value=outer_func) Registers.set_reg(inst['rd'], func_addr) inc_pc(4)
def setPreferenceList(self, position, primary=None, second=None, type=None): label = L.Label() label.setLabel(primary, second, type) self.listOfPre[position] = label
def test_k(k, options): options['K'] = k ImageFolder = 'Images' #GTFile = 'LABELSlarge.txt' #GTFile = 'LABELSsmall.txt' GTFile = 'nye.txt' GTFile = ImageFolder + '/' + GTFile GT = lb.loadGT(GTFile) DBcolors = [] for gt in GT: print gt[0] im = io.imread(ImageFolder + "/" + gt[0]) colors, _, _ = lb.processImage(im, options) DBcolors.append(colors) return lb.evaluate(DBcolors, GT, options)
def load_data(data): addr = 0x10000000 line = 0 while line < len(data): label = data[line].strip().split(':')[0] Labels.add(label, addr) if label.startswith('int_'): value = int(re.match(r'\s+\.word\s+(-?\w+)', data[line+2]).group(1), 16) Memory.set_int(addr, value) Constants.set_int(value, addr) addr += 8 line += 3 elif label.startswith('str_'): string = re.match(r'\s+\.asciiz\s+"([^"]+)"', data[line+3]).group(1) string = string.decode('string_escape') Memory.set_str(addr, string) Constants.set_str(string, addr) addr += 8 + math.floor(len(string) / 4 + 1) * 4 line += 4
def load_data(data): addr = 0x10000000 line = 0 while line < len(data): label = data[line].strip().split(':')[0] Labels.add(label, addr) if label.startswith('int_'): value = int( re.match(r'\s+\.word\s+(-?\w+)', data[line + 2]).group(1), 16) Memory.set_int(addr, value) Constants.set_int(value, addr) addr += 8 line += 3 elif label.startswith('str_'): string = re.match(r'\s+\.asciiz\s+"([^"]+)"', data[line + 3]).group(1) string = string.decode('string_escape') Memory.set_str(addr, string) Constants.set_str(string, addr) addr += 8 + math.floor(len(string) / 4 + 1) * 4 line += 4
def findMatch(self, label): initNum = 0 prelabel = L.Label() for primaryDict in self.dicOfLabels: for secondDict in self.dicOfLabels[primaryDict]: for typeDict in self.dicOfLabels[primaryDict][secondDict]: theNum = self.dicOfLabels[primaryDict][secondDict][ typeDict] if (theNum > initNum) and self.isMatch( label, primaryDict, secondDict, typeDict): initNum = theNum prelabel.setLabel(primaryDict, secondDict, typeDict) return prelabel
def __init__( self, path=None, show_window=True, time_machine=False, mem_access=False ): if path is not None: import os os.chdir( path ) sys.setrecursionlimit( 3000 ) self.emulator = Emulator( no_display=not show_window, quiet=True, time_machine=time_machine, mem_access=mem_access ) self.emulator.load_image( 0x2dfd, r'bin\ROBOTRON.BIN' ) # self.emulator.load_image( 0x2dfd, r"tmp\ROBOTRON#062DFD.BIN" ) self.apple2 = self.emulator.apple2 self.display = self.apple2.display self.cpu = self.emulator.cpu self.mem = self.emulator.mem self.map = self.emulator.map self.labels = Labels( ) self.dis = Disassembler( self.cpu, self.map, self.labels ) # type: Disassembler self.tile_factory = TileFactory( self.emulator.map ) self.annotations = Annotations( ) # type: Annotations self.memlog_dialog = None # type: MemLogDialog
plt.close("all") if __name__ == "__main__": #'colorspace': 'RGB', 'Lab' o 'ColorNaming' options = { 'colorspace': 'RGB', 'K': 6, 'synonyms': False, 'single_thr': 0.6, 'verbose': False, 'km_init': 'first', 'metric': 'basic' } ImageFolder = 'Images' GTFile = 'LABELSsmall.txt' GTFile = ImageFolder + '/' + GTFile GT = lb.loadGT(GTFile) DBcolors = [] for gt in GT: print gt[0] im = io.imread(ImageFolder + "/" + gt[0]) colors, _, _ = lb.processImage(im, options) DBcolors.append(colors) encert, _ = lb.evaluate(DBcolors, GT, options) print "Encert promig: " + '%.2f' % (encert * 100) + '%'
def exec_bnz(inst): rs_obj = Memory.get_obj(Registers.get_reg(inst['rs'])) if is_true(rs_obj): write_pc(Labels.query(inst['label'])) else: inc_pc(4)
def get_label(filename): temp1,temp2=Labels.get_labels(filename,chunk_time=chunk_time) temp1, temp2 =temp1.reshape(-1), temp2.reshape(-1) return temp1+temp2*2
def __init__(self, projectID): self.ID = projectID self.label = L.Label()
def gen_assignment_expression_no_in(ast): assert ast[0] == 'AssignmentExpressionNoIn' if len(ast) == 2: if ast[1][0] == 'LeftHandSideExpression': return gen_left_hand_side_expression(ast[1]) elif ast[1][0] == 'CallExpression': return gen_call_expression(ast[1]) elif ast[1][0] == 'MemberExpression': return gen_member_expression(ast[1]) elif len(ast) == 3: if ast[1][0] == 'AssignmentExpressionNoIn': raise Exception('Postfix operator is not supported yet.') rs = gen_assignment_expression_no_in(ast[1]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) if ast[2] == '++': builder.inst_add(rs, rs, rt) elif ast[2] == '--': builder.inst_sub(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == '++': rs = gen_assignment_expression_no_in(ast[2]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) builder.inst_add(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == '--': rs = gen_assignment_expression_no_in(ast[2]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) builder.inst_sub(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == 'typeof': rd = Registers.allocate(1)[0] rs = gen_assignment_expression_no_in(ast[2]) builder.inst_newobj(rd) builder.inst_typeof(rd, rs) Registers.free([rs]) return rd elif ast[1] == '+': return gen_assignment_expression_no_in(ast[2]) elif ast[1] == '-': rs = gen_assignment_expression_no_in(ast[2]) rd, rt = Registers.allocate(2) builder.inst_la(rt, Constants.integer(-1)) builder.inst_mul(rd, rs, rt) Registers.free([rs, rt]) return rd elif ast[1] == '~': rs = gen_assignment_expression_no_in(ast[2]) builder.inst_not(rs, rs) return rs elif ast[1] == '!': rs = gen_assignment_expression_no_in(ast[2]) t1 = Registers.allocate(1)[0] exit_label = Labels.temp() true_label = Labels.temp() builder.inst_newobj(t1) builder.inst_bnz(rs, true_label) builder.inst_la(t1, Constants.integer(1)) builder.inst_j(exit_label) builder.insert_label(true_label) builder.insert_la(t1, Constants.integer(0)) builder.insert_label(exit_label) return t1 elif len(ast) == 4: if ast[2] in ['=', '*=', '/=', '%=', '+=', '-=', '<<=', '>>=', '>>>=', '&=', '^=', '|=']: r1 = gen_left_hand_side_expression(ast[1]) elif ast[2] in ['||', '&&', '|', '&', '^', '==', '!=', '===', '!==', '<', '>', '<=', '>=', '<<', '>>', '>>>', '+', '-', '*', '/']: r1 = gen_assignment_expression_no_in(ast[1]) r2 = gen_assignment_expression_no_in(ast[3]) if ast[2] == '+': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_add(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '-': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sub(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '*': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_mul(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '/': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_div(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '=': builder.inst_move(r1, r2) Registers.free([r2]) return r1 elif ast[2] == '*=': builder.inst_mul(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '/=': builder.inst_div(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '%=': builder.inst_mod(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '+=': builder.inst_add(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '-=': builder.inst_sub(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '<<=': builder.inst_sll(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '>>=': builder.inst_sra(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '>>>=': builder.inst_srl(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '&=': builder.inst_and(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '^=': builder.inst_xor(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '|=': builder.inst_or(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '||': rd = Registers.allocate(1)[0] exit_label = Labels.temp() ret_r1 = Labels.temp() builder.inst_newobj(rd) builder.inst_bnz(r1, ret_r1) builder.inst_move(rd, r2) builder.inst_j(exit_label) builder.insert_label(ret_r1) builder.inst_move(rd, r1) builder.insert_label(exit_label) Registers.free([r1, r2]) return rd elif ast[2] == '&&': rd = Registers.allocate(1)[0] exit_label = Labels.temp() ret_r1 = Labels.temp() builder.inst_newobj(rd) builder.inst_bez(r1, ret_r1) builder.inst_move(rd, r2) builder.inst_j(exit_label) builder.insert_label(ret_r1) builder.inst_move(rd, r1) builder.insert_label(exit_label) Registers.free([r1, r2]) return rd elif ast[2] == '|': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_or(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '&': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_and(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '^': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_xor(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '==' or ast[2] == '===': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_cmp(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '!=' or ast[2] == '!==': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_cmp(rd, r1, r2) builder.inst_la(r1, Constants.integer(1)) builder.inst_sub(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '<': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r2, r1) Registers.free([r1, r2]) return rd elif ast[2] == '<=': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r2, r1) builder.inst_la(r1, Constants.integer(1)) # TODO: r1 should not be modified builder.inst_not(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '>=': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r1, r2) builder.inst_la(r1, Constants.integer(1)) # TODO: r1 should not be modified builder.inst_sub(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '<<': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sll(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sra(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>>>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_srl(rd, r1, r2) Registers.free([r1, r2]) return rd
def get_label(filename): l1, l2 = Labels.get_labels(filename, chunk_time=chunk_time) return np.concatenate((l1, l2), axis=0)
x = -5 elif evevt.key == py.K_RIGHT: x = 5 if evevt.type == py.KEYUP: if evevt.key == py.K_LEFT or evevt.key == py.K_RIGHT: x = 0 acftX += x aircraft(acftX, acftY, window_width, window_height, iaf, green) # drawCTR py.draw.circle(displayGame, (0, 50, 120), (300, 300), 300) py.draw.line(displayGame, (0, 10, 10), (599, 294), (251, 596), 5) py.draw.line(displayGame, (10, 90, 0), (268, 269), (341, 328), 5) Labels.showLabelRWY("30", displayGame, 341, 328) Labels.showLabelRWY("12", displayGame, 260, 269) Labels.showLabelRWY("AWZ DVOR", displayGame, 270, 280) Labels.showLabelRWY("EGVAX", displayGame, 430, 29) Labels.showLabelRWY("ITIBI", displayGame, 536, 112) Labels.showLabelRWY("GODMO", displayGame, 308, 536) Labels.showLabelRWY("GABSU", displayGame, 95, 518) # ROUTES py.draw.line(displayGame, (10, 90, 0), (430, 29), (314, 305), 5) py.draw.line(displayGame, (10, 90, 0), (536, 112), (314, 305), 5) py.draw.line(displayGame, (10, 90, 0), (308, 536), (314, 305), 5) py.draw.line(displayGame, (10, 90, 0), (95, 518), (314, 305), 5) enemy.traffics(displayGame, acft1, rec_x, rec_y, window_width, window_height) enemy.traffics(displayGame, acft2, rec_x2, rec_y2, window_width,
def halt(self): temp = Labels.temp() self.insert_label(temp) self.inst_j(temp)
def exec_la(inst): Registers.set_reg(inst['rd'], Labels.query(inst['label'])) inc_pc(4)
def __init__(self, input_dir, output_fname, label_fname, reset): self.images = Images(input_dir, reset) self.labels = Labels(label_fname) self.classifications = Classifications(self.images, output_fname, reset)
def exec_j(inst): write_pc(Labels.query(inst['label']))
def get_label(filename): return Labels.get_labels(filename, chunk_time=chunk_time)
import Audio_data import Labels import numpy as np import tensorflow as tf from tensorflow.contrib.data import Dataset, Iterator directory_csv = "/media/vishal/Share/Diarization/Project Data/testData/csv/" directory_audio = "/media/vishal/Share/Diarization/Project Data/testData/Sound/" #get the data matrix (data_1,data_2) = Audio_data.get_data(directory_audio) datas=np.concatenate((data_1, data_2), axis=0) #get labels (label_1,label_2) = Labels.get_labels(directory_csv) labels=np.concatenate((label_1,label_2),axis=0) #check dimension print(labels.shape,datas.shape) def reset_graph(seed=1): tf.reset_default_graph() tf.set_random_seed(seed) np.random.seed(seed) # tf.create_graph() n_inputs = datas.shape[1] n_hidden1 = 300
plt.close("all") if __name__ == "__main__": #'colorspace': 'RGB', 'Lab' o 'ColorNaming' #'fitting': 'fisher' o 'silhouette' options = {'colorspace':'ColorNaming', 'K':0, 'synonyms':False, 'single_thr':0.6, 'verbose':False, 'km_init':'First', 'metric':'Basic', 'fitting':'Fisher', 'tolerance':0} ImageFolder = 'Images' GTFile = 'LABELSsmall.txt' GTFile = ImageFolder + '/' + GTFile GT = lb.loadGT(GTFile) DBcolors = [] for gt in GT: print gt[0] im = io.imread(ImageFolder+"/"+gt[0]) im = rescale(im, 0.2, preserve_range=True) colors,_,_ = lb.processImage(im, options) DBcolors.append(colors) basicEncert,_ = lb.evaluate(DBcolors, GT, options) options['metric'] = 'Complete' completeEncert,_ = lb.evaluate(DBcolors, GT, options) print "Encert promig: "+ '%.2f' % (basicEncert*100) + '%' print "Puntuació total promig: " + '%.2f' % (completeEncert*100) + '%'
def gen_assignment_expression_no_in(ast): assert ast[0] == 'AssignmentExpressionNoIn' if len(ast) == 2: if ast[1][0] == 'LeftHandSideExpression': return gen_left_hand_side_expression(ast[1]) elif ast[1][0] == 'CallExpression': return gen_call_expression(ast[1]) elif ast[1][0] == 'MemberExpression': return gen_member_expression(ast[1]) elif len(ast) == 3: if ast[1][0] == 'AssignmentExpressionNoIn': raise Exception('Postfix operator is not supported yet.') rs = gen_assignment_expression_no_in(ast[1]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) if ast[2] == '++': builder.inst_add(rs, rs, rt) elif ast[2] == '--': builder.inst_sub(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == '++': rs = gen_assignment_expression_no_in(ast[2]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) builder.inst_add(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == '--': rs = gen_assignment_expression_no_in(ast[2]) rt = Registers.allocate(1)[0] builder.inst_la(rt, Constants.integer(1)) builder.inst_sub(rs, rs, rt) Registers.free([rt]) return rs elif ast[1] == 'typeof': rd = Registers.allocate(1)[0] rs = gen_assignment_expression_no_in(ast[2]) builder.inst_newobj(rd) builder.inst_typeof(rd, rs) Registers.free([rs]) return rd elif ast[1] == '+': return gen_assignment_expression_no_in(ast[2]) elif ast[1] == '-': rs = gen_assignment_expression_no_in(ast[2]) rd, rt = Registers.allocate(2) builder.inst_la(rt, Constants.integer(-1)) builder.inst_mul(rd, rs, rt) Registers.free([rs, rt]) return rd elif ast[1] == '~': rs = gen_assignment_expression_no_in(ast[2]) builder.inst_not(rs, rs) return rs elif ast[1] == '!': rs = gen_assignment_expression_no_in(ast[2]) t1 = Registers.allocate(1)[0] exit_label = Labels.temp() true_label = Labels.temp() builder.inst_newobj(t1) builder.inst_bnz(rs, true_label) builder.inst_la(t1, Constants.integer(1)) builder.inst_j(exit_label) builder.insert_label(true_label) builder.insert_la(t1, Constants.integer(0)) builder.insert_label(exit_label) return t1 elif len(ast) == 4: if ast[2] in [ '=', '*=', '/=', '%=', '+=', '-=', '<<=', '>>=', '>>>=', '&=', '^=', '|=' ]: r1 = gen_left_hand_side_expression(ast[1]) elif ast[2] in [ '||', '&&', '|', '&', '^', '==', '!=', '===', '!==', '<', '>', '<=', '>=', '<<', '>>', '>>>', '+', '-', '*', '/' ]: r1 = gen_assignment_expression_no_in(ast[1]) r2 = gen_assignment_expression_no_in(ast[3]) if ast[2] == '+': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_add(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '-': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sub(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '*': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_mul(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '/': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_div(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '=': builder.inst_move(r1, r2) Registers.free([r2]) return r1 elif ast[2] == '*=': builder.inst_mul(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '/=': builder.inst_div(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '%=': builder.inst_mod(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '+=': builder.inst_add(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '-=': builder.inst_sub(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '<<=': builder.inst_sll(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '>>=': builder.inst_sra(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '>>>=': builder.inst_srl(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '&=': builder.inst_and(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '^=': builder.inst_xor(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '|=': builder.inst_or(r1, r1, r2) Registers.free([r2]) return r1 elif ast[2] == '||': rd = Registers.allocate(1)[0] exit_label = Labels.temp() ret_r1 = Labels.temp() builder.inst_newobj(rd) builder.inst_bnz(r1, ret_r1) builder.inst_move(rd, r2) builder.inst_j(exit_label) builder.insert_label(ret_r1) builder.inst_move(rd, r1) builder.insert_label(exit_label) Registers.free([r1, r2]) return rd elif ast[2] == '&&': rd = Registers.allocate(1)[0] exit_label = Labels.temp() ret_r1 = Labels.temp() builder.inst_newobj(rd) builder.inst_bez(r1, ret_r1) builder.inst_move(rd, r2) builder.inst_j(exit_label) builder.insert_label(ret_r1) builder.inst_move(rd, r1) builder.insert_label(exit_label) Registers.free([r1, r2]) return rd elif ast[2] == '|': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_or(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '&': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_and(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '^': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_xor(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '==' or ast[2] == '===': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_cmp(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '!=' or ast[2] == '!==': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_cmp(rd, r1, r2) builder.inst_la(r1, Constants.integer(1)) builder.inst_sub(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '<': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r2, r1) Registers.free([r1, r2]) return rd elif ast[2] == '<=': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r2, r1) builder.inst_la( r1, Constants.integer(1)) # TODO: r1 should not be modified builder.inst_not(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '>=': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_slt(rd, r1, r2) builder.inst_la( r1, Constants.integer(1)) # TODO: r1 should not be modified builder.inst_sub(rd, r1, rd) Registers.free([r1, r2]) return rd elif ast[2] == '<<': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sll(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_sra(rd, r1, r2) Registers.free([r1, r2]) return rd elif ast[2] == '>>>': rd = Registers.allocate(1)[0] builder.inst_newobj(rd) builder.inst_srl(rd, r1, r2) Registers.free([r1, r2]) return rd