8 for y
in range(map_image.size[1]):
9 for x
in range(map_image.size[0]):
10 if pix_data[x, y] != (0, 0, 0, 255):
11 color = pix_data[x, y]
12 if color
not in colors:
16 points = dictionary[color]
18 dictionary[color] = points
19 return dictionary, colors
23 keys = dictionary.keys()
24 for key
in list(keys):
25 if dictionary[key] <= th:
37 if pos[0] >= size[0] - 1:
49 if pos[1] >= size[1] - 1:
61 if pos[1] >= size[1] - 1
or pos[0] >= size[0] - 1:
67 if pos[1] >= size[1] - 1
or pos[0] <= 0:
73 if pos[1] <= 0
or pos[0] >= size[0] - 1:
79 if pos[1] <= 0
or pos[0] <= 0:
85 p1, p2, p3, p4, p5, p6, p7, p8 =
True,
True,
True,
True,
True,
True,
True,
True
88 if pos_x == size[0] - 1:
89 p1, p5, p7 =
False,
False,
False
91 p2, p6, p8 =
False,
False,
False
92 if pos_y == size[1] - 1:
93 p3, p5, p6 =
False,
False,
False
95 p4, p7, p8 =
False,
False,
False
101 pos = pos_x + ind, pos_y
103 flag, color =
get_color(pos, pix_data, colors)
107 pos = pos_x - ind, pos_y
109 flag, color =
get_color(pos, pix_data, colors)
113 pos = pos_x, pos_y + ind
115 flag, color =
get_color(pos, pix_data, colors)
119 pos = pos_x, pos_y - ind
121 flag, color =
get_color(pos, pix_data, colors)
125 pos = pos_x + ind, pos_y + ind
127 flag, color =
get_color(pos, pix_data, colors)
131 pos = pos_x - ind, pos_y + ind
133 flag, color =
get_color(pos, pix_data, colors)
137 pos = pos_x + ind, pos_y - ind
139 flag, color =
get_color(pos, pix_data, colors)
143 pos = pos_x - ind, pos_y - ind
145 flag, color =
get_color(pos, pix_data, colors)
148 if not p1
and not p2
and not p3
and not p4
and not p5
and not p6
and not p7
and not p8:
158 initial_map = Image.open(segmentation_map_path)
159 final_map = initial_map.copy()
160 pix_data_initial = initial_map.load()
161 pix_data_final = final_map.load()
163 dictionary, colors =
get_colors(pix_data_initial, initial_map)
165 new_colors = colors[:]
166 if (255, 255, 255, 255)
in new_colors:
167 new_colors.remove((255, 255, 255, 255))
168 del dictionary[(255, 255, 255, 255)]
172 colors_eliminated = [(255, 255, 255, 255)]
174 if color
not in new_colors:
175 colors_eliminated.append(color)
177 for y
in range(initial_map.size[1]):
178 for x
in range(initial_map.size[0]):
180 pixel_color = pix_data_initial[x, y]
181 if pixel_color
in colors_eliminated:
182 new_pixel_color =
compute_distance(pix_data_initial, position, initial_map.size, new_colors)
183 pix_data_final[x, y] = new_pixel_color
187 title = filepath +
'8b_rooms_th1_on_map_post.png'
189 rospy.loginfo(
'[rose2] 8b_rooms_th1_on_map_post')
190 final_map.save(title)
193 return title, new_colors
197 initial_map = Image.open(room_image)
198 final_map = initial_map.copy()
199 pix_data_initial = initial_map.load()
200 pix_data_final = final_map.load()
202 dictionary, colors =
get_colors(pix_data_initial, initial_map)
204 new_colors = colors[:]
208 colors_eliminated = []
210 if color
not in new_colors:
211 colors_eliminated.append(color)
213 for y
in range(initial_map.size[1]):
214 for x
in range(initial_map.size[0]):
216 pixel_color = pix_data_initial[x, y]
217 if pixel_color
in colors_eliminated:
218 new_pixel_color =
compute_distance(pix_data_initial, position, initial_map.size, new_colors)
219 pix_data_final[x, y] = new_pixel_color
223 final_map.save(room_image)