1 from PIL import Image, ImageFilter
2 import src.im_debug as imd
7 def color_quant(image):
10 new_image = Image.new('RGB', image.size)
11 new_image_l = new_image.load()
13 def nearest((r, g, b)):
15 o = ((r - 166) ** 2 + (g - 166) ** 2 + (b - 166) ** 2, (166, 166, 166))
16 bl = (r * r + g * g + b * b, (0, 0, 0))
17 r, g, b = r - 255, g - 255, b - 255
18 w = (r * r + g * g + b * b, (255, 255, 255))
19 if min([o, bl, w]) == o:
24 return min([o, bl, w])[1]
26 new_image = Image.new('RGB', image.size)
27 new_image_l = new_image.load()
28 for x in xrange(image.size[0]):
29 for y in xrange(image.size[1]):
30 new_image_l[x, y] = nearest(image_l[x, y])
32 print rr / s, gg /s, bb /s
36 im = Image.open('image.jpg')
37 imd.show(color_quant(im))