X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/ba7978f0ac03e56190df7ed04f8a6e03c4193546..5575c909e2d345773367d1da42149b758f7e4865:/filters.py diff --git a/filters.py b/filters.py index 377fa2e..a5d00e6 100644 --- a/filters.py +++ b/filters.py @@ -1,17 +1,12 @@ from PIL import Image -from commons import clear - def edge_detection(image): - clear() - print "edge detection" - 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): + for x in xrange(2, image.size[0] - 2): + for y in xrange(2, image.size[1] - 2): pix = (sum([sum([ image_l[a, b] for b in range(y - 2, y + 3)]) @@ -25,9 +20,6 @@ def edge_detection(image): return new_image def peaks(image): - clear() - print "peak extraction" - image_l = image.load() new_image = Image.new('L', image.size) new_image_l = new_image.load() @@ -47,9 +39,6 @@ def peaks(image): return new_image def high_pass(image, height): - clear() - print "high pass filter" - image_l = image.load() new_image = Image.new('L', image.size) new_image_l = new_image.load() @@ -64,9 +53,6 @@ def high_pass(image, height): return new_image def components(image): - clear() - print "components center filter" - image_l = image.load() new_image = Image.new('L', image.size) new_image_l = new_image.load() @@ -74,8 +60,8 @@ def components(image): components = [] comp_counter = 0 - for x in xrange(1, image.size[0] - 1): - for y in xrange(1, image.size[1] - 1): + for y in xrange(1, image.size[1] - 1): + for x in xrange(1, image.size[0] - 1): if image_l[x, y]: s = {0} s.add(new_image_l[x - 1, y - 1]) @@ -116,4 +102,34 @@ def components(image): new_image_l[int(round(float(x_c)/c)), int(round(float(y_c)/c))] = 255 - return new_image \ No newline at end of file + return new_image + +def half_centers(image): + image_l = image.load() + new_image = Image.new('L', image.size) + new_image_l = new_image.load() + + x_s = 0 + y_s = 0 + n = 0 + for x in range(0, image.size[0] / 2): + for y in range(0, image.size[1]): + if image_l[x, y] > 127: + x_s += x + y_s += y + n += 1 + new_image_l[x_s / n, y_s / n] = 255 + + x_s = 0 + y_s = 0 + n = 0 + for x in range(image.size[0] / 2, image.size[0]): + for y in range(0, image.size[1]): + if image_l[x, y] > 127: + x_s += x + y_s += y + n += 1 + new_image_l[x_s / n, y_s / n] = 255 + + return new_image +