faster gridf, cancel scaling
[imago.git] / src / filters.py
index a879ee9..f24a822 100644 (file)
@@ -5,6 +5,7 @@ preserved.
 """
 
 from PIL import Image, ImageFilter
+import numpy as np
 
 import pcf
 
@@ -49,7 +50,6 @@ def peaks(image):
     image_l = image.load()
     new_image = Image.new('L', image.size)
     new_image_l = new_image.load()
-    
     for x in range(2, image.size[0] - 2):
         for y in range(2, image.size[1] - 2):
             pix = (sum([sum([
@@ -83,8 +83,7 @@ def components(image, diameter):
     # TODO comment 
     # TODO refactor
     image_l = image.load()
-    new_image = Image.new('L', image.size)
-    new_image_l = new_image.load()
+    new_image_l = np.zeros(image.size, dtype=np.int)
 
     components = [None]
     comp_counter = 1
@@ -107,7 +106,7 @@ def components(image, diameter):
                         s.remove(0)
                         c = s.pop()
                         new_image_l[x, y] = c
-                        components[c].add((x,y))
+                        components[c].add((x, y))
                     else:
                         s.remove(0)
                         c1, c2 = s.pop(), s.pop()
@@ -136,7 +135,11 @@ def components(image, diameter):
                         s.remove(0)
                         c = s.pop()
                         new_image_l[x, y] = c
-                        components[c].add((x,y))
+                        try:
+                            components[c].add((x, y))
+                        except AttributeError:
+                            print s, c
+                            raise AttributeError
                     else:
                         s.remove(0)
                         c1 = s.pop()