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