Beispiel #1
0
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) + '%'
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #9
0
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])
Beispiel #10
0
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
Beispiel #11
0
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
Beispiel #12
0
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])
Beispiel #13
0
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])
Beispiel #14
0
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])
Beispiel #15
0
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)
Beispiel #16
0
    def setPreferenceList(self,
                          position,
                          primary=None,
                          second=None,
                          type=None):
        label = L.Label()
        label.setLabel(primary, second, type)

        self.listOfPre[position] = label
Beispiel #17
0
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)
Beispiel #18
0
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
Beispiel #19
0
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
Beispiel #20
0
    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
Beispiel #21
0
    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
Beispiel #22
0
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) + '%'
Beispiel #23
0
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)
Beispiel #24
0
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
Beispiel #25
0
 def __init__(self, projectID):
     self.ID = projectID
     self.label = L.Label()
Beispiel #26
0
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
Beispiel #27
0
def get_label(filename):
    l1, l2 = Labels.get_labels(filename, chunk_time=chunk_time)
    return np.concatenate((l1, l2), axis=0)
Beispiel #28
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,
Beispiel #29
0
 def halt(self):
     temp = Labels.temp()
     self.insert_label(temp)
     self.inst_j(temp)
Beispiel #30
0
def exec_la(inst):
    Registers.set_reg(inst['rd'], Labels.query(inst['label']))
    inc_pc(4)
Beispiel #31
0
    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)
Beispiel #32
0
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) + '%'
Beispiel #36
0
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