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