Mercurial > repos > tomasz-bednarz > filter_tools
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() |