Mercurial > repos > tomasz-bednarz > filter_tools
diff tools/pil_filter.py @ 2:a44112280169
Uploaded
author | tomasz-bednarz |
---|---|
date | Mon, 25 Nov 2013 21:12:30 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/pil_filter.py Mon Nov 25 21:12:30 2013 -0500 @@ -0,0 +1,117 @@ +import Image +import ImageFilter +import ImageChops +import os +import sys + +def isodd(num): + return num & 1 and True or False + +def main(): + numArgs = len(sys.argv) + + if numArgs < 2: + print "USAGE: provide input, output, functions, parameters" + exit(1) + + listOfValues = sys.argv[1:] + + try: + imageIn = Image.open(listOfValues[0]) + except IOError: + print "cannot open: ", listOfValues[0] + + if listOfValues[2] == "median": + size = int(listOfValues[3]); + # prevent size to be even + if size & 1 == False: + size = size + 1 + imageMedian = imageIn.filter(ImageFilter.MedianFilter(size)) + imageOut = imageMedian.save(listOfValues[1], listOfValues[4]) + # imageMedian.show() + print "Applied a median filter of the given size." + elif listOfValues[2] == "emboss": + imageEmboss = imageIn.filter(ImageFilter.EMBOSS) + imageOut = imageEmboss.save(listOfValues[1], listOfValues[3]) + # imageEmboss.show() + print "Applied an emboss filter on the image." + elif listOfValues[2] == "blur": + imageBlur = imageIn.filter(ImageFilter.BLUR) + imageOut = imageBlur.save(listOfValues[1], listOfValues[3]) + # imageBlur.show() + print "Applied a blur filter on the image." + elif listOfValues[2] == "contour": + imageContour = imageIn.filter(ImageFilter.CONTOUR) + imageOut = imageContour.save(listOfValues[1], listOfValues[3]) + # imageContour.show() + print "Applied a contour filter on the image." + elif listOfValues[2] == "detail": + imageDetail = imageIn.filter(ImageFilter.DETAIL) + imageOut = imageDetail.save(listOfValues[1], listOfValues[3]) + # imageDetail.show() + print "Applied a detial filter on the image." + elif listOfValues[2] == "edge_enhance": + imageEdgeEnhance = imageIn.filter(ImageFilter.EDGE_ENHANCE) + imageOut = imageEdgeEnhance.save(listOfValues[1], listOfValues[3]) + # imageEdgeEnhance.show() + print "Applied an edge enhance filter on the image." + elif listOfValues[2] == "edge_enhance_more": + imageEdgeEnhanceMore = imageIn.filter(ImageFilter.EDGE_ENHANCE_MORE) + imageOut = imageEdgeEnhanceMore.save(listOfValues[1], listOfValues[3]) + # imageEdgeEnhanceMore.show() + print "Applied an eddge enhance more filter on the image." + elif listOfValues[2] == "find_edges": + imageFindEdges = imageIn.filter(ImageFilter.FIND_EDGES) + imageOut = imageFindEdges.save(listOfValues[1], listOfValues[3]) + # imageFindEdges.show() + print "Applied a find_edges filter on the image." + elif listOfValues[2] == "sharpen": + imageSharpen = imageIn.filter(ImageFilter.SHARPEN) + imageOut = imageSharpen.save(listOfValues[1], listOfValues[3]) + # imageSharpen.show() + print "Applied a sharpen filter on the image." + elif listOfValues[2] == "smooth": + imageSmooth = imageIn.filter(ImageFilter.SMOOTH) + imageOut = imageSmooth.save(listOfValues[1], listOfValues[3]) + # imageSmooth.show() + print "Applied a smooth filter on the image." + elif listOfValues[2] == "smooth_more": + imageSmoothMore = imageIn.filter(ImageFilter.SMOOTH_MORE) + imageOut = imageSmoothMore.save(listOfValues[1], listOfValues[3]) + # imageSmoothMore.show() + print "Applied a smooth_more filter on the image." + elif listOfValues[2] == "min": + size = int(listOfValues[3]) + # prevent size to be even + if size & 1 == False: + size = size + 1 + imageMin = imageIn.filter(ImageFilter.MinFilter(size)) + imageOut = imageMin.save(listOfValues[1], listOfValues[4]) + # imageMin.show() + print "Applied a min filter of the given size on the image" + elif listOfValues[2] == "max": + size = int(listOfValues[3]) + # prevent size to be even + if size & 1 == False: + size = size + 1 + imageMax = imageIn.filter(ImageFilter.MaxFilter(size)) + imageOut = imageMax.save(listOfValues[1], listOfValues[4]) + # imageMax.show() + print "Applied a max filter of the given size on the image" + elif listOfValues[2] == "mode": + size = int(listOfValues[3]) + # prevent size to be even + if size & 1 == False: + size = size + 1 + imageMode = imageIn.filter(ImageFilter.ModeFilter(size)) + imageOut = imageMode.save(listOfValues[1], listOfValues[4]) + # imageMode.show() + print "Applied a mode filter of the given size on the image" + elif listOfValues[2] == "invert": + imageInvert = ImageChops.invert(imageIn) + imageOut = imageInvert.save(listOfValues[1], listOfValues[3]) + # imageInvert.show() + print "Inverted the image." + +if __name__ == "__main__": + main() \ No newline at end of file