Ejemplo n.º 1
0
def runAnalysis(originalFile, saveDir,transform, metric, step, mergeLimit, centralDirectory, transformName, metricName):
    

    array = utils.get_array(originalFile)

    transformed = transform(array)

    
    print("size: " + str(len(transformed)) + " X " + str(len(transformed[0])) + " (pixels: " + str(len(transformed) * len(transformed[0])) + ")")
   
    ws = ws_map.build_index_map(utils.get_gradient(transformed))

    edge_merges = dict()
    
    edge_map = ws.get_edge_weight_map(metric)
    
    try:
        FileWriter.writeSparseMatrix(saveDir + getFilename(originalFile) + '-' +transformName + '-' +metricName +'.data',edge_map);
        if len(centralDirectory) != 0:
            FileWriter.writeSparseMatrix(centralDirectory +getFilename(originalFile) + '-' +transformName + '-' +metricName +'.data',edge_map);
    except:
        sys.stderr.write("Unable to write file")
      
    
    s = 0
    while s < mergeLimit:
        edge_merges = WatershedMerge.merge_watersheds_at_limit(edge_merges, ws, s, edge_map)
        utils.write_image(ws.get_watershed_picture(edge_merges,len(transformed), len(transformed[0])), saveDir + str(s) + '.png')
        s += step
Ejemplo n.º 2
0
def resize_image(filename, factor):
    
    im_arr = utils.get_array(filename)
    
    resized_arr =  numpy.ndarray(shape=(len(im_arr)*factor, len(im_arr[0])*factor,3), dtype='uint8', order='F')
    for x in range(0,len(im_arr)):
        for y in range(0, len(im_arr[0])):
            y_off = y*factor
            x_off = x*factor
            for offx in range(0,factor):
                for offy in range(0, factor):
                    resized_arr[x_off + offx][y_off + offy][0] = im_arr[x][y][0]
                    resized_arr[x_off + offx][y_off + offy][1] = im_arr[x][y][1]
                    resized_arr[x_off + offx][y_off + offy][2] = im_arr[x][y][2]
    
    utils.write_image(resized_arr,filename[:-4] + "resized.png")
Ejemplo n.º 3
0
            black = 0
            
            for i  in range(-1, 2):
                for j in range(-1,2):
                    if(valid(i,j,tt*x,tt*y,array)):
                        count +=1
                        if array[tt*x+i][tt*y+j] ==0:
                            black +=1
            if black*4 >= count:
                for i  in range(-1, 2):
                    for j in range(-1,2):
                        if(valid(i,j,tt*x,tt*y,array)):
                            array[tt*x+i][tt*y+j] = 0
                            '''else:
                for i  in range(-1, 2):
                    for j in range(-1,2):
                        if(valid(i,j,3*x,3*y,array)):
                            array[3*x+i][3*y+j] = 255 '''
    
    return array
    

if __name__ == '__main__':
    
    
    
    filename = "../../data/class_notes-gradient-530.png"
    writeFileName = "../../data/class_notes-gradient-530-FILL.png"
    
    util.write_image(fill(util.greyscale(util.get_array(filename))), writeFileName);