--- /dev/null
+from PIL import Image
+
+def filter(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([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])
+ if pix > 255:
+ pix = 255
+ if pix < 0:
+ pix = 0
+ new_image_l[x, y] = pix
+ return new_image
import Image
import im_debug
import sys
+from filter import filter
+
+class Usage(Exception):
+ def __init__(self, msg):
+ self.msg = msg
def main(argv=None):
"""Main function of the program."""
- if argv is None:
- argv = sys.argv[1]
+ try:
+ if argv is None:
+ try:
+ argv = sys.argv[1]
+ except IndexError:
+ raise Usage('no arguments given')
+ except Usage, err:
+ print >>sys.stderr, err.msg
+ print >>sys.stderr, "for help use --help"
+ return 2
#TODO exception on empty argument
#TODO exception on file error
image = Image.open(argv)
- im_debug.show(image, "Original image")
+ im_debug.show(image, "original image")
im_l = image.convert('L')
im_debug.show(im_l, "ITU-R 601-2 luma transform")
+ im_edges = filter(im_l)
+ im_debug.show(im_edges, "edge detection")
+
if __name__ == '__main__':
- main()
+ main() #sys.exit(main())
+