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
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")
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);