Example #1
0
 def color_triangles(self, outline=None):
     self.rgb[:, :] = 255, 255, 255
     im = Image.fromarray(self.rgb)
     draw = ImageDraw.Draw(im)
     cs_rgb = np.array(self.cluster_centers_lab)
     cs_rgb.shape = (1, len(cs_rgb), 3)
     cs_rgb = slic_funcs.lab2rgb(cs_rgb)
     for tri in self.tri:
         p0 = self.tripts[tri[0]]
         p1 = self.tripts[tri[1]]
         p2 = self.tripts[tri[2]]
         m = [(p0[0] + p1[0] + p2[0]) / 3, (p0[1] + p1[1] + p2[1]) / 3]
         mindist = 2147483647
         nearest = -1
         n = 0
         for c in self.cluster_centers_xy:
             d = (m[0] - c[0]) * (m[0] - c[0]) + (m[1] - c[1]) * (m[1] - c[1])
             if d < mindist:
                 mindist = d
                 nearest = n
             n += 1
         col = cs_rgb[0, nearest, 0], cs_rgb[0, nearest, 1], cs_rgb[0, nearest, 2]
         draw.polygon(((p0[0], p0[1]), (p1[0], p1[1]), (p2[0], p2[1])), fill=col, outline=outline)
     del draw
     self.rgb = np.array(im)
     self._sync_lab_from_rgb()
Example #2
0
 def _sync_rgb_from_lab(self):
     self.rgb = slic_funcs.lab2rgb(self.lab)