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