3 from commons import clear
5 def edge_detection(image):
10 new_image = Image.new('L', image.size)
11 new_image_l = new_image.load()
13 for x in range(2, image.size[0] - 2):
14 for y in range(2, image.size[1] - 2):
17 for b in range(y - 2, y + 3)])
18 for a in range(x - 2, x + 3)])
19 - (25 * image_l[x, y]))
24 new_image_l[x, y] = pix
29 print "peak extraction"
31 image_l = image.load()
32 new_image = Image.new('L', image.size)
33 new_image_l = new_image.load()
35 for x in range(2, image.size[0] - 2):
36 for y in range(2, image.size[1] - 2):
39 for b in range(y - 2, y + 3)])
40 for a in range(x - 2, x + 3)])
41 + (16 * image_l[x, y]))
46 new_image_l[x, y] = pix
49 def high_pass(image, height):
51 print "high pass filter"
53 image_l = image.load()
54 new_image = Image.new('L', image.size)
55 new_image_l = new_image.load()
57 for x in xrange(image.size[0]):
58 for y in xrange(image.size[1]):
59 if image_l[x, y] < height:
62 new_image_l[x, y] = image_l[x, y]
66 def components(image):
68 print "components center filter"
70 image_l = image.load()
71 new_image = Image.new('L', image.size)
72 new_image_l = new_image.load()
77 for y in xrange(1, image.size[1] - 1):
78 for x in xrange(1, image.size[0] - 1):
81 s.add(new_image_l[x - 1, y - 1])
82 s.add(new_image_l[x, y - 1])
83 s.add(new_image_l[x + 1, y - 1])
84 s.add(new_image_l[x - 1, y])
86 components.append(set())
87 new_image_l[x, y] = comp_counter
88 components[comp_counter].add((x, y))
94 components[c].add((x,y))
97 c1, c2 = s.pop(), s.pop()
98 components[c2].add((x, y))
99 for (x1, y1) in components[c2]:
100 new_image_l[x1, y1] = c1
101 components[c1] = components[c1] | components[c2]
102 components[c2] = None
104 new_image = Image.new('L', image.size)
105 new_image_l = new_image.load()
107 for component in components:
112 for (x, y) in component:
116 new_image_l[int(round(float(x_c)/c)), int(round(float(y_c)/c))] = 255