def build_graph(im, fbasename): # get image dimensions nrow, ncol = im.shape[0], im.shape[1] # for keeping visual of points added to graph imdup = np.zeros(im.shape) # initiate graph graph = Graph() # find starting pixel (first nonzero pixel) currentrow, currentcol = find_start(im, nrow, ncol) prev_vertex = Vertex(currentrow, currentcol) graph.addVertex(prev_vertex) r = 1 # radius around current pixel to be checked prev_visited = set() prev_visited.add((currentrow, currentcol)) # traverse through image and build graph imdup = traverse(im, graph, nrow, ncol, currentrow, currentcol, r, imdup, prev_vertex, prev_visited) # save to file fig1 = plt.gcf() plt.imshow(imdup, cmap='Greys') plt.draw() fig1.savefig(fbasename + "_graph.jpg") return graph
def makeTestGraph(numPoints=None): graph = Graph() # Pixels always between 33 x 48 if not numPoints: numPoints = randint(5,10) for i in range(numPoints): v = Vertex(int(randint(0,33)), int(randint(0,48))) graph.addVertex(v) return graph
def makeSpecificGraph(): # Set up graph graph = Graph() v1 = Vertex(2,3) graph.addVertex(v1) v2 = Vertex(0,0) graph.addVertex(v2) dist = v1.EuclidDist(v2) e = Edge(v1, v2, dist, False) graph.addEdge(e) v3 = Vertex(4,5) graph.addVertex(v3) e2 = Edge(v1, v3, v3.EuclidDist(v1), True) graph.addEdge(e2) v4 = Vertex(10,20) graph.addVertex(v4) e3 = Edge(v3, v4, v3.EuclidDist(v4), False) graph.addEdge(e3) return graph
def tests(): v1 = Vertex(2,3) v2 = Vertex(0,0) v1.print_out() v2.print_out() print "\n" dist = v1.EuclidDist(v2) e = Edge(v1, v2, dist, False) graph = Graph() graph.addVertex(v1) graph.addVertex(v2) graph.addEdge(e) graph.print_adjmatrix() graph.print_vertexlst() v3 = Vertex(4,5) graph.addVertex(v3) e2 = Edge(v1, v3, v3.EuclidDist(v1), True) graph.addEdge(e2) print("Real Print starts here ") graph.print_graph()