comparison tools/pil_filter.py @ 2:a44112280169

Uploaded
author tomasz-bednarz
date Mon, 25 Nov 2013 21:12:30 -0500
parents
children
comparison
equal deleted inserted replaced
1:795060eb6643 2:a44112280169
1 import Image
2 import ImageFilter
3 import ImageChops
4 import os
5 import sys
6
7 def isodd(num):
8 return num & 1 and True or False
9
10 def main():
11 numArgs = len(sys.argv)
12
13 if numArgs < 2:
14 print "USAGE: provide input, output, functions, parameters"
15 exit(1)
16
17 listOfValues = sys.argv[1:]
18
19 try:
20 imageIn = Image.open(listOfValues[0])
21 except IOError:
22 print "cannot open: ", listOfValues[0]
23
24 if listOfValues[2] == "median":
25 size = int(listOfValues[3]);
26 # prevent size to be even
27 if size & 1 == False:
28 size = size + 1
29 imageMedian = imageIn.filter(ImageFilter.MedianFilter(size))
30 imageOut = imageMedian.save(listOfValues[1], listOfValues[4])
31 # imageMedian.show()
32 print "Applied a median filter of the given size."
33 elif listOfValues[2] == "emboss":
34 imageEmboss = imageIn.filter(ImageFilter.EMBOSS)
35 imageOut = imageEmboss.save(listOfValues[1], listOfValues[3])
36 # imageEmboss.show()
37 print "Applied an emboss filter on the image."
38 elif listOfValues[2] == "blur":
39 imageBlur = imageIn.filter(ImageFilter.BLUR)
40 imageOut = imageBlur.save(listOfValues[1], listOfValues[3])
41 # imageBlur.show()
42 print "Applied a blur filter on the image."
43 elif listOfValues[2] == "contour":
44 imageContour = imageIn.filter(ImageFilter.CONTOUR)
45 imageOut = imageContour.save(listOfValues[1], listOfValues[3])
46 # imageContour.show()
47 print "Applied a contour filter on the image."
48 elif listOfValues[2] == "detail":
49 imageDetail = imageIn.filter(ImageFilter.DETAIL)
50 imageOut = imageDetail.save(listOfValues[1], listOfValues[3])
51 # imageDetail.show()
52 print "Applied a detial filter on the image."
53 elif listOfValues[2] == "edge_enhance":
54 imageEdgeEnhance = imageIn.filter(ImageFilter.EDGE_ENHANCE)
55 imageOut = imageEdgeEnhance.save(listOfValues[1], listOfValues[3])
56 # imageEdgeEnhance.show()
57 print "Applied an edge enhance filter on the image."
58 elif listOfValues[2] == "edge_enhance_more":
59 imageEdgeEnhanceMore = imageIn.filter(ImageFilter.EDGE_ENHANCE_MORE)
60 imageOut = imageEdgeEnhanceMore.save(listOfValues[1], listOfValues[3])
61 # imageEdgeEnhanceMore.show()
62 print "Applied an eddge enhance more filter on the image."
63 elif listOfValues[2] == "find_edges":
64 imageFindEdges = imageIn.filter(ImageFilter.FIND_EDGES)
65 imageOut = imageFindEdges.save(listOfValues[1], listOfValues[3])
66 # imageFindEdges.show()
67 print "Applied a find_edges filter on the image."
68 elif listOfValues[2] == "sharpen":
69 imageSharpen = imageIn.filter(ImageFilter.SHARPEN)
70 imageOut = imageSharpen.save(listOfValues[1], listOfValues[3])
71 # imageSharpen.show()
72 print "Applied a sharpen filter on the image."
73 elif listOfValues[2] == "smooth":
74 imageSmooth = imageIn.filter(ImageFilter.SMOOTH)
75 imageOut = imageSmooth.save(listOfValues[1], listOfValues[3])
76 # imageSmooth.show()
77 print "Applied a smooth filter on the image."
78 elif listOfValues[2] == "smooth_more":
79 imageSmoothMore = imageIn.filter(ImageFilter.SMOOTH_MORE)
80 imageOut = imageSmoothMore.save(listOfValues[1], listOfValues[3])
81 # imageSmoothMore.show()
82 print "Applied a smooth_more filter on the image."
83 elif listOfValues[2] == "min":
84 size = int(listOfValues[3])
85 # prevent size to be even
86 if size & 1 == False:
87 size = size + 1
88 imageMin = imageIn.filter(ImageFilter.MinFilter(size))
89 imageOut = imageMin.save(listOfValues[1], listOfValues[4])
90 # imageMin.show()
91 print "Applied a min filter of the given size on the image"
92 elif listOfValues[2] == "max":
93 size = int(listOfValues[3])
94 # prevent size to be even
95 if size & 1 == False:
96 size = size + 1
97 imageMax = imageIn.filter(ImageFilter.MaxFilter(size))
98 imageOut = imageMax.save(listOfValues[1], listOfValues[4])
99 # imageMax.show()
100 print "Applied a max filter of the given size on the image"
101 elif listOfValues[2] == "mode":
102 size = int(listOfValues[3])
103 # prevent size to be even
104 if size & 1 == False:
105 size = size + 1
106 imageMode = imageIn.filter(ImageFilter.ModeFilter(size))
107 imageOut = imageMode.save(listOfValues[1], listOfValues[4])
108 # imageMode.show()
109 print "Applied a mode filter of the given size on the image"
110 elif listOfValues[2] == "invert":
111 imageInvert = ImageChops.invert(imageIn)
112 imageOut = imageInvert.save(listOfValues[1], listOfValues[3])
113 # imageInvert.show()
114 print "Inverted the image."
115
116 if __name__ == "__main__":
117 main()