c350ef51e5186224332256de420ba4ce5fb2f430
[imago.git] / filter.py
1 from PIL import Image
2 from commons import clear
3
4 def edge_detection(image):
5     image_l = image.load()
6     new_image = Image.new('L', image.size)
7     new_image_l = new_image.load()
8     clear()
9     print "edge detection"
10     for x in range(2, image.size[0] - 2):
11         for y in range(2, image.size[1] - 2):
12             pix = sum([sum([image_l[a, b] for b in range(y - 2, y + 3)]) for a in range(x - 2, x + 3)]) - (25 * image_l[x, y])
13             if pix > 255:
14                 pix = 255
15             if pix < 0:
16                 pix = 0 
17             new_image_l[x, y] = pix
18     return new_image
19
20 def high_pass(image, high_pass):
21     image_l = image.load()
22     new_image = Image.new('L', image.size)
23     new_image_l = new_image.load()
24     clear()
25     print "high pass filter"
26     for x in xrange(image.size[0]):
27         for y in xrange(image.size[1]):
28             if image_l[x, y] < high_pass:
29                 new_image_l[x, y] = 0
30             else:
31                 new_image_l[x, y] = image_l[x, y]
32
33     return new_image