|
8 | 8 | import itertools
|
9 | 9 | import cv2
|
10 | 10 | import copy
|
| 11 | +import numpy as np |
11 | 12 | from tqdm import tqdm
|
12 | 13 |
|
13 | 14 | def get_taps_demand(taps,houses):
|
@@ -54,42 +55,39 @@ def total_demand(tap_demands):
|
54 | 55 |
|
55 | 56 | def draw_network(houses,taps,image, display = True):
|
56 | 57 | pos = {}
|
57 |
| - names = [] |
58 |
| - edges = [] |
| 58 | + names = {} |
| 59 | + g = nx.Graph() |
59 | 60 | for i in range(len(houses)):
|
60 |
| - pos[str(houses[i][0])]=(houses[i][1][0],houses[i][1][1]) |
61 |
| - edges.append((str(houses[i][0]),str(houses[i][0]))) |
| 61 | + g.add_node(i) |
| 62 | + pos[i]=(houses[i][1][0],houses[i][1][1]) |
| 63 | + names[i]=str(round(houses[i][0])) |
62 | 64 |
|
63 |
| - G = nx.Graph() |
64 |
| - G.add_edges_from(edges) |
65 |
| - |
66 |
| - nx.draw_networkx(G, pos=pos, node_color='r',node_size = 20,font_size=10) |
| 65 | + nx.draw_networkx(g, pos=pos, labels=names, node_color='r',node_size = 15,font_size=10) |
67 | 66 |
|
68 | 67 | pos = {}
|
69 |
| - edges = [] |
70 |
| - for i in range(len(taps)): |
71 |
| - pos[(i+1)]=(taps[i][0],taps[i][1]) |
72 |
| - edges.append((i+1,i+1)) |
73 |
| - |
74 |
| - G = nx.Graph() |
75 |
| - G.add_edges_from(edges) |
| 68 | + names = {} |
| 69 | + g = nx.Graph() |
| 70 | + for i in range(len(houses)): |
| 71 | + g.add_node(i) |
| 72 | + pos[i]=(taps[i][0],taps[i][1]) |
| 73 | + names[i]= str(i + 1) |
76 | 74 |
|
77 |
| - nx.draw_networkx(G, pos=pos, node_color='b',node_size=42,fontsize=15) |
| 75 | + nx.draw_networkx(g, pos=pos, names=names, node_color='b',node_size=90,fontsize=8, font_color='w') |
78 | 76 | image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
79 | 77 | fig1 = plt.gcf()
|
80 | 78 | plt.axis('off')
|
81 | 79 | plt.imshow(image)
|
82 | 80 | # plt.show()
|
83 | 81 |
|
84 |
| - fig1.savefig('figureTaps.png',bbox_inches='tight') |
85 |
| - im = Image.open('figureTaps.png') |
86 |
| - bg = Image.new(im.mode, im.size, im.getpixel((0,0))) |
87 |
| - diff = ImageChops.difference(im, bg) |
88 |
| - diff = ImageChops.add(diff,diff,2.0,-100) |
89 |
| - bbox = diff.getbbox() |
90 |
| - image = im.crop(bbox) |
91 |
| - image.save('figureTaps.png') |
92 |
| - return image |
| 82 | + fig1.tight_layout(pad=0) |
| 83 | + fig1.canvas.draw() |
| 84 | + img = np.frombuffer(fig1.canvas.tostring_rgb(), dtype=np.uint8) |
| 85 | + img = img.reshape(fig1.canvas.get_width_height()[::-1] + (3,)) |
| 86 | + img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) |
| 87 | + |
| 88 | + crop_img = img[5:455, 94:544] |
| 89 | + # cv2.imwrite("figureTaps.png",crop_img) |
| 90 | + return crop_img |
93 | 91 |
|
94 | 92 | def total(demands):
|
95 | 93 | totalval = 0
|
|
0 commit comments